我想知道是否有办法告诉 NHibernate 从数据库中获取所有数据到对象图中,无论映射文件中的延迟加载是否设置为 true。有没有这个功能?
最佳答案
我知道有两种选择:
使用NHibernateUtil
类
例如:
Order fromDb;
using (ISession session = SessionFactory.OpenSession())
{
fromDb = session.Get<Order>(_order.Id);
NHibernateUtil.Initialize(fromDb.Customer);
}
这将强制预先加载 Customer
实体。
使用 HQL fetch
如果您使用 HQL 来获取您的实体,只需使用 fetch
关键字来强制预先加载:
from Order o
inner join fetch o.OrderLines
inner join fetch o.Customer
where o.Id = :id
在该示例中,OrderLines
和 Customer
将预先加载。
更多详情 here .
关于c# - 加载附加到对象的所有实体(忽略延迟加载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858938/