Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate通过单个查询为每个类别获取一个元素_C#_Sql_Nhibernate - Fatal编程技术网

C# NHibernate通过单个查询为每个类别获取一个元素

C# NHibernate通过单个查询为每个类别获取一个元素,c#,sql,nhibernate,C#,Sql,Nhibernate,我的新闻课如下: 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 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
排序的每个类别获得一条新闻。好的,我想从分类中得到最新的新闻,但我想得到所有分类的所有新闻

好的,我可以得到所有的分类和每个分类的最后新闻,我很好奇是否有一个有效的方法来做到这一点

有什么想法吗


正确的语法也是什么?

在我看来,最干净的方法是向Category类添加一个反向集合(这在技术上是免费的,如果您需要映射方面的帮助,请告诉我):

公共虚拟ICollection新闻项{get;set;}
然后是一个简单的LINQ查询:

var results = from category in session.Query<Category>()
              select new
                     {
                         category,
                         LatestNews = category.NewsItems
                           OrderByDescending(x => x.DateCreated).FirstOrDefault()
                     };
var results=来自session.Query()中的类别
选择新的
{
类别
LatestNews=category.NewsItems
OrderByDescending(x=>x.DateCreated).FirstOrDefault()
};

在您弄清楚需要什么样的sql查询之后,您可能想从本文开始,我将着手构建NHibernate查询。如果您找到了所需的sql查询,我也会将其发布在这里。如果您说需要将此sql查询转换为Nhibernate查询,您可能会得到更好的响应。
var results = from category in session.Query<Category>()
              select new
                     {
                         category,
                         LatestNews = category.NewsItems
                           OrderByDescending(x => x.DateCreated).FirstOrDefault()
                     };