如何在运行时强制加载?

Byr*_*ahl 2 c# nhibernate lazy-loading fluent-nhibernate eager-loading

我正在使用 Fluent NHibernate。我在运行时有一个对象,其中包含可能已填充或未填充的惰性集合/属性。我计划序列化该对象,并需要在我这样做之前填充所有集合/属性。如何在运行时“热切加载”我的对象?

Fre*_*son 6

如果您已经在映射中设置了关系,则无需指定如何加入查询,您可以简单地使用 Fetch(甚至是深度提取)来指定要提前加载的路径:

session.QueryOver<MasterEnt>()
   .Where(x => x.Id == 2)
   .Fetch(x => x.DetailEntList)
   .Eager().List();
Run Code Online (Sandbox Code Playgroud)