c# - 加载附加到对象的所有实体(忽略延迟加载)

标签 c# nhibernate

我想知道是否有办法告诉 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

在该示例中,OrderLinesCustomer 将预先加载。

更多详情 here .

关于c# - 加载附加到对象的所有实体(忽略延迟加载),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858938/

相关文章:

c# - 无法在 Oracle 中使用 Fluent Nhibernate 获取间隔

c# - .NET Standard 1.6 中的 System.Threading.Tasks.Parallel 在哪里?

c# - 将多个列表绑定(bind)到 DataGridView

nhibernate - nhibernate 映射文件中来自多个程序集和命名空间的类型

nhibernate - Criteria API 和字典/ map 上的左连接

nhibernate - QueryOver - JoinQueryOver 问题

c# - 在 TreeNode 编辑器中禁用节点或使节点变灰

c# - C# Winforms 本地化

javascript - 无需修改/创建实体记录即可触发插件

nhibernate - 流畅的 NHibernate : Mixing Automapping and manual mapping