NHibernate:返回列表<;实体类型>;非列表<;对象[]>;使用分组时

NHibernate:返回列表<;实体类型>;非列表<;对象[]>;使用分组时,nhibernate,Nhibernate,当使用Nhiberante Criteria API或HQL进行分组时,查询返回进行分组的实体属性数组列表list。如果我只需要归还某些财产,我该怎么做?最好使用Nhiberane API(如果可能)使用HQL,您只需选择所需的属性: var query = Session.CreateQuery("select p.Id, p.Price from Products p where p.Status = 'A'") .List().Cast<obje

当使用Nhiberante Criteria API或HQL进行分组时,查询返回进行分组的实体属性数组列表
list
。如果我只需要归还某些财产,我该怎么做?最好使用Nhiberane API(如果可能)

使用HQL,您只需
选择所需的属性:

var query = Session.CreateQuery("select p.Id, p.Price from Products p where p.Status = 'A'")
                   .List().Cast<object[]>();
var query=Session.CreateQuery(“从产品p中选择p.Id,p.Price,其中p.Status='A'))
.List().Cast();
它与NHibernate类似。Linq:

var query = from p in Session.Linq<Product>()
            where p.Status == "A"
            select new
            {
                p.Id, p.Price
            };
var query=来自会话中的p.Linq()
其中p.Status==“A”
选择新的
{
p、 Id,p.价格
};

您是否尝试过使用变压器类


参见第

节,我不太理解hql的示例。什么是演员?使用分组时(与您的示例不同),默认情况下,数据返回为列表(在您的示例中,它将包含整数和小数)。如果我只需要产品的价格,我怎么能得到它们呢?这是惊人的现象。我认为,这是一种快速删除O(n)场景的方法,使用一些自定义SQL,而不需要另一个ORM映射器。似乎在实体框架中也可以做同样的事情,不需要整洁等等。