Я действительно плохо разбираюсь в LINQ и не могу понять простую проблему. У меня есть веб-API MVC с контроллером. У меня есть метод внутри контроллера, чтобы возвращать данные для комментариев, введенных пользователем для элемента.LINQ query JOIN две таблицы для метода контроллера веб-API
Структура данных проста - Комментарии и таблицы пользователей с колонкой Идентификатор_пользователя, действующими в качестве внешнего ключа
Чтобы решить эту проблему, у меня есть следующий метод, который имеет запрос LINQ, чтобы сделать соединение между Комментариями и пользователем таблицы и вернуть объект в новый расширенный объект, который объединяет комментарии и данные пользователя. Кажется, я не могу захватить данные из таблицы User. Кто-то может помочь?
public IQueryable<CommentsWithUserDetails> GetReviewsWithUserByItem(int ID)
{
var query = from x in db.Comments
join y in db.Users on x.CommentsUserID equals y.UserID into z
where x.CommentsItemID.Equals(ID)
select new CommentsWithUserDetails
{
CommentsUserID = x.CommentsUserID,
CommentsText = x.CommentsText,
CommentsRating = x.CommentsRating,
CommentsDate = x.CommentsDate,
UserFirstName = y.FirstName,
UserLastName = y.LastName,
UserPictureURL = y.PictureURL
};
return query;
}
Вы присоединились все в г, поэтому использовать г вместо х! – Fals
вы также можете удалить 'in z' – Nilesh
на самом деле ... почему у вас даже есть предложение where. Веб-интерфейс API позволяет использовать строки запросов OData для применения «фильтра». – Aron