【问题标题】:How do you map aggregate functions in NHibernate?你如何在 NHibernate 中映射聚合函数?
【发布时间】:2009-09-01 03:30:59
【问题描述】:

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

我已经创建了一个这样的类(我的例子被简化了):

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; }
}

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

选择 b.BuyerID、b.Name、
avg(o.OrderTotal) as AverageOrderAmount, max(o.OrderDate) as LastOrderDate
来自买家 b
在 o.BuyerID = b.BuyerID
上加入订单 o 买家 ID=@BuyerID
按 b.BuyerID、b.Name 分组

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

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

【问题讨论】:

    标签: nhibernate nhibernate-mapping


    【解决方案1】:

    据我所知,您无法使用 nhibernate 进行映射。一个实体代表一个表格(大多数情况下),你所拥有的更多的是报告的内容。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多