nhibernate复合键引用生成多个查询

时间:2011-11-02 15:07:39

标签: nhibernate fluent-nhibernate linq-to-nhibernate

我们在复合ID中有关键引用,如下所示

表( “父”); compositeid()      .keyreference(E =>的OBJ, “样品”);

这会为父级中的每一行生成单独的obj查询。如何解决这个问题呢 ? 主要是如何在这里控制fetch startegies(内连接)以进行密钥引用?

请帮忙

1 个答案:

答案 0 :(得分:-2)

你可以调整keyreferencemapping。最简单的方法是禁用延迟加载

.KeyReference(e => e.Obj, c => c.Not.Lazy());
然而,它将使用select而不是join。但是使用查询NH使用连接

var loaded = session.Query<Parent>()
    .Fetch(c => c.Obj)
    .ToList();

注意:看起来Linq确实急于提取,而QueryOver却没有。这不起作用

var loaded = session.QueryOver<Parent>()
    .Fetch(c => c.Obj).Eager
    .List();