Я недавно начал использовать LINQ to SQL, и у меня есть небольшой сложный запрос, с которым мне нужна помощь.
В моей базе данных есть таблица MovieComment со следующими столбцами:
- CommentID
- Идентификатор_пользователь
- MovieID
- Комментарий
- Отметка
Итак, я хочу сгруппировать комментарии к MovieID и сохранить их в моем объекте MovieID, где MovieID сохраняется в записи MovieID, а объект Linq сохраняется внутри ObservableCollection внутри объекта Movie.
public class Movie
{
#region Member Variables
public int MovieID { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Uri Poster { get; set; }
public double Rating { get; set; }
public DateTime Timestamp { get; set; }
public ObservableCollection<MovieComment> Comments { get; set; } // Linq object: MovieComment
#endregion // Member Variables
}
Я пришел к следующему запросу linq, где я получаю MovieID, но я действительно не знаю, как мне поступить, чтобы получить все остальные данные
public ObservableCollection<Movie> LoadMovieID(int _userID, int _limit)
{
ObservableCollection<Movie> movies = new ObservableCollection<Movie>();
var query = (from mc in db.MovieComment
where mc.UserID == _userID
orderby mc.Timestamp descending
group mc by mc.MovieID into movie
select new
{
MovieID = movie.Key,
}).Take(_limit);
foreach (var row in query)
{
Movie movie = new Movie();
movie.MovieID = row.MovieID;
// I want to get the following:
// movie.MovieComment = MovieComment-objects with the MovieID == row.MovieID
movies.Add(movie);
}
return movies;
}
Возможно ли это даже в одном запросе? Благодарю за помощь, которую я могу получить