如何从数据库中获取n个对象,而不需要在nhibernate中获取所有对象
本文关键字:对象 获取 不需要 nhibernate 数据库 | 更新日期: 2023-09-27 18:14:43
如何从数据库中获取n个对象而不需要在nhibernate中获取所有对象?
下面是一个例子
假设我有这个域实体
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个元素
IList<Asset> = contract.Assets.take(10);
不是一个查询,它只是访问一个属性,它是一个列表,或者更确切地说是一个代理。据我所知,你不能随心所欲。您必须像这样对数据库进行查询:
Session.Query<Asset>().Where(a => a.Contracts.Any(c => c.Id == myContractId)).Take(10);