如何在不获取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
并告诉nhibernate只直接从数据库中提取这10个元素
答案 0 :(得分:0)
IList<Asset> = contract.Assets.take(10);
不是查询,它只是访问属于IList或者代理的属性。据我所知,你不能像你想的那样做。你必须像这样查询数据库:
Session.Query<Asset>().Where(a => a.Contracts.Any(c => c.Id == myContractId)).Take(10);