【发布时间】:2010-09-23 14:13:10
【问题描述】:
我最近开始使用 LINQ to SQL,我有一个小复杂查询需要帮助。 我的数据库中有一个名为 MovieComment 的表,其中包含以下列:
- 评论ID
- 用户 ID
- 电影 ID
- 评论
- 时间戳
所以,我想做的是将 MovieID 上的 cmets 分组并将它们保存到我的名为 Movie 的对象中,其中 MovieID 保存在 MovieID 帖子中,而 Linq 对象保存在 Movie 对象内的 ObservableCollection 中。
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;
}
这甚至可以在单个查询中实现吗?感谢我能得到的所有帮助
【问题讨论】:
标签: c# linq-to-sql group-by