2016-10-25 8 views
0

nhibernate内のすべてのオブジェクトをフェッチせずにn個のオブジェクトをデータベースから取得する方法はありますか?ここで nhibernate内のすべてのオブジェクトを取得せずにデータベースからn個のオブジェクトを取得する方法

は私が多くの関係に多く持っており、上記の例では、このドメインエンティティ

public class Contract 
{ 
    Ilist<Asset> Assets{get; set;} 
} 

public class Asset 
{ 
    Ilist<Contract> Contracts{get; set;} 
} 

を持っていることを

が思う例である私は、この

IList<Asset> = contract.Assets.take(10); 
リククエリを使用している場合

このケースでは、データベースからすべての資産を持ってきて、それから10を取ります。どのようにして、どうすれば開発者に直接contract.Assetsを使わないように強制できますか? ND

答えて

0
IList<Asset> = contract.Assets.take(10); 

がクエリではないですdtatabaseから直接、これらの10個の要素をもたらすだけにNHibernateのを伝えるために、それだけでIListのかというプロキシであるプロパティにアクセスしています。私が知っているように、あなたが望むようにこれをすることはできません。次のようにデータベースに対して照会する必要があります。

Session.Query<Asset>().Where(a => a.Contracts.Any(c => c.Id == myContractId)).Take(10); 
関連する問題