为什么我的QueryOver <t>()。RowCount()抛出NonUniqueResultException?</t>

时间:2012-12-26 09:02:04

标签: nhibernate queryover

我已经将一个实体映射到一个表和一个视图,方法是为映射到视图的那个指定entity-name,如下所示:

到桌子的映射:

<class name="Foo">

到视图的映射:

<class name="Foo" entity-name="LatestFoo">

然后我尝试在我的控制器中执行此操作:

var latestVersions = Database.QueryOver<Foo>("LatestFoo");
var count = latestVersions.RowCount();

但是对RowCount()的调用会运行表和视图的SQL语句:

2012-12-26 13:30:55,700 [31] DEBUG NHibernate.SQL - SELECT count(*) as y0_ FROM LatestFoo this_
2012-12-26 13:30:55,705 [31] DEBUG NHibernate.SQL - SELECT count(*) as y0_ FROM Foo this_

导致NonUniqueResultException的邮件为query did not return a unique result: 2

我需要做些什么才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

您还需要为表的映射指定entity-name。

看看(滚动到部分 - 一些问题):

http://nhibernate.info/doc/howto/mapping/mapping-the-same-class-to-a-view-and-a-table-using-entity-name.html