我可以在运行时使用c在Nhibernate中进行延迟加载吗#

我可以在运行时使用c在Nhibernate中进行延迟加载吗#,nhibernate,Nhibernate,我是新来的 如果我在Nhibernete中使用XML文档(.hbm.XML文件),我将在该XML中启用/禁用延迟加载 在Nhibernete中有什么方法可以在运行时设置延迟加载 我建议您不要在hbm文件中定义延迟加载/急切加载 你可以用电脑控制一切 延迟加载: var order = Session.QueryOver<Domain.Order>() .Where(x => x.id == 12) .SingleOrDefault(); var order=S

我是新来的

如果我在Nhibernete中使用XML文档(.hbm.XML文件),我将在该XML中启用/禁用延迟加载


在Nhibernete中有什么方法可以在运行时设置延迟加载

我建议您不要在hbm文件中定义延迟加载/急切加载

你可以用电脑控制一切

延迟加载:

var order = Session.QueryOver<Domain.Order>()
    .Where(x => x.id == 12)
    .SingleOrDefault();
var order=Session.QueryOver()
.其中(x=>x.id==12)
.SingleOrDefault();
快速加载:

Domain.OrderLine orderLine = null;

var order = Session.QueryOver<Domain.Order>()
    .Where(x => x.id == 12)
    .Fetch(x => x.OrderLines).Eager
        .JoinAlias(x => x.OrderLines, () => orderLine, JoinType.LeftOuterJoin)
    .SingleOrDefault();
Domain.OrderLine OrderLine=null;
var order=Session.QueryOver()
.其中(x=>x.id==12)
.Fetch(x=>x.OrderLines)。急切
.JoinAlias(x=>x.OrderLines,()=>orderLine,JoinType.LeftOuterJoin)
.SingleOrDefault();

var order=Session.QueryOver()
.其中(x=>x.id==12)
.internal.JoinAlias(x=>x.OrderLines,()=>orderLine)
.SingleOrDefault();
我建议你读这本有趣的书

var order = Session.QueryOver<Domain.Order>()
    .Where(x => x.id == 12)
        .Inner.JoinAlias(x => x.OrderLines, () => orderLine)
        .SingleOrDefault();