私のコードの非常に単純化されたバージョンである次の例を参照してください。
Dim Criteria = Session.CreateCriteria(Of Person)()
Criteria.SetProjection(Projections.Property("Car"))
return Criteria.List(Of Car)()
これは完全に機能しますが、NHibernate 3.1 は結果を取得するために 2 つのクエリを作成します。何かのようなもの:
SELECT CarId FROM Person WHERE blababla
次に、各行について:
SELECT color, brand, wheels FROM Car WHERE CarId = ?
これはあまり効率的ではないので、試しました:
Criteria.CreateAlias("Car", "Car")
Criteria.SetFetchMode("Car", NHibernate.FetchMode.Join)
これは何もしません。最初のクエリで NHibernate に強制的に結合させるにはどうすればよいですか?