0

我正在用 c# 开发一个 MVC3 应用程序,并且我将 NHibernate 用于 ORM 部分。我需要生成所有注册客户及其最新订单的列表。在应用程序方面,这需要遍历所有客户并检索他们的所有订单以提取最新的订单。不必要的开销,不是吗?

在数据库上,我可以创建一个视图并相应地为实体建模,但由于无法填充视图,我无法创建新客户。那么,您有什么想法或最佳实践是如何解决这些问题的?这是一个可以提供所需信息的 sql 查询:

SELECT c.id, c.name, c.description, m.ordernumber AS latest_order, m.unixtime, m.id AS latest_order_id
FROM dbo.customer c
LEFT JOIN dbo.mailorder m ON c.id = m.customer_id
WHERE m.unixtime = (SELECT MAX(unixtime) FROM dbo.mailorder)

很感谢任何形式的帮助!

最好的问候,马丁

4

1 回答 1

2

您可以使用公式来获取客户的最后一个订单,如下所示:

<property name="LatestOrder" formula="(SELECT MAX(dbo.mailorder.unixtime) FROM dbo.mailorder where dbo.mailorder.customer_id = ID)" />
于 2012-06-13T08:41:15.027 回答