1

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_

メッセージNonUniqueResultExceptionquery did not return a unique result: 2

これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

また、テーブルへのマッピングにエンティティ名を指定する必要があります。

見てください(セクションにスクロール-いくつかの落とし穴):

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

于 2012-12-26T09:53:08.480 に答える