【发布时间】:2013-01-21 11:09:51
【问题描述】:
我将 ClassA 类映射到表 TableA。如何将下一个 sql 转换为 NHibernate 条件?
SELECT DISTINCT t.Id, (Select COUNT(*) FROM TableA WHERE [Id] = t.Id)
FROM TableA AS t
更新 1: TableA 确实是一个视图。它用于合并来自两个表的统计信息。 ID 不是身份,只是字段,如有歧义,请见谅。
【问题讨论】:
-
我有几个cmets。首先 - 这个查询似乎有一个循环引用。第二 - 我认为您不必在 ID 列上查询
DISTINCT。第三 - 看起来您正在尝试计算one-to-many关系的多方面。如果是这种情况,为什么不把关系映射到对象上,然后你可以做MyObject.ChildItems.Count -
感谢您的回复。请查看更新 1。
-
由于相关的子查询和不同的查询,看起来这可能是一个非常低效的查询。您是否考虑过写作是在 t.id 上进行分组?
-
还没有,但这似乎是个好主意。谢谢!
标签: sql nhibernate fluent-nhibernate