如何在NHibernate中映射聚合函数?

如何在NHibernate中映射聚合函数?,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我是NHibernate的新手,正在尝试创建我的第一个映射 我创建了这样一个类(简化了我的示例): 通常,为了从SQL Server中获取这些数据,我会使用如下聚合函数编写一个查询: 选择b.BuyerID,b.Name, 平均(o.OrderTotal)作为平均OrderAmount,最大(o.OrderDate)作为LastOrderDate 买家b 在o.BuyerID=b.BuyerID上加入订单o 其中BuyerID=@BuyerID 按b.BuyerID、b.Name分组 我的问题是

我是NHibernate的新手,正在尝试创建我的第一个映射

我创建了这样一个类(简化了我的示例):

通常,为了从SQL Server中获取这些数据,我会使用如下聚合函数编写一个查询:

选择b.BuyerID,b.Name,
平均(o.OrderTotal)作为平均OrderAmount,最大(o.OrderDate)作为LastOrderDate
买家b
在o.BuyerID=b.BuyerID上加入订单o
其中BuyerID=@BuyerID
按b.BuyerID、b.Name分组

我的问题是,如何在映射中传达这一点?这可能吗


我想我可以将这些计算值存储在买家电报中,并根据需要重新计算,但这感觉不对。

据我所知,您无法使用nhibernate映射这些值。一个实体代表一个表(大多数情况下),您所拥有的更多信息与报告的内容一致


要访问该类,我将在数据库中创建一个视图,然后创建一个单独的实体。在正常使用Buyer时,您可能并不总是需要AverageOrderAmount和LastOrderDate-我认为您使用它在界面上显示此信息,在这种情况下,您应该创建并映射DB视图。

好的。这是有道理的。谢谢这可以通过将属性映射到SQL公式来实现。你能详细说明一下吗?我看不出怎么能做到这一点。
public class Buyer
{
    public int BuyerID { get; set; }
    public string Name { get; set; }
    public decimal AverageOrderAmount { get; private set; }
    public DateTime LastOrderDate { get; private set; }
}