我有新闻类如下:
public class News
{
public virtual int Id { set; get; }
public virtual string Title { get; set; }
public virtual Category Category { set; get; }
public virtual DateTime DateCreated { set; get;}
}
并且有类别类;
public class Category
{
public virtual int Id { set; get; }
public virtual string Name { set; get;}
}
新闻表中填充了数据。
我需要的是按DateCreated
订购每个类别一个新闻。好的所以我想要该类别的最新消息,但我想要所有类别的所有新闻。
好的我可以获得所有类别并获得每个类别的最新消息,我很好奇是否有一种有效的方法可以做到这一点?
任何想法?
什么是正确的语法?
答案 0 :(得分:1)
在我看来,最干净的方法是在Category类中添加一个反向集合(这在技术上是免费的,如果你需要绘图方面的帮助,请告诉我):
public virtual ICollection<News> NewsItems { get; set; }
然后它是一个简单的LINQ查询:
var results = from category in session.Query<Category>()
select new
{
category,
LatestNews = category.NewsItems
OrderByDescending(x => x.DateCreated).FirstOrDefault()
};