是否可以使用L2S或EF关联主/子记录

时间:2011-07-22 21:08:50

标签: .net entity-framework linq-to-sql

编辑:我受限于.Net 3.5 ...

我从Linq到Sql的存储过程检索了两个对象/集合(如果必须,我可以使用EF)。它们与数据库和我的数据库模型中的1对多关系相关。我可以将这两个对象联系起来,以便我可以像以下一样访问它们:

ParentObject.ChildObjects.FirstOrDefault().Property

...没有回到数据库?

1 个答案:

答案 0 :(得分:0)

是的,有一种方法可以在LINQ to SQL中指定关系的急切加载。以下内容应该可以正常工作。

partial void OnCreated() {
    DataLoadOptions options = new DataLoadOptions();
    options.LoadWith<ParentObject>(o => o.ChildObjects);
    this.LoadOptions = options;
}

这是指定数据上下文的OnCreate部分中的选项,如果您希望规则在所有实例中保持不变,但您的情况可能不同,那么这很好。

我认为只有FYI加载更深层次的嵌套对象会有一些微妙的细微差别。

还应该注意,当请求父对象时,这只是急切地加载父对象的相关实体,它没有做任何魔术来组合初始父请求生成的查询。所以本质上现在每次请求父而不是一个时都会执行两个查询,优点是它不会返回到数据库以在枚举时检索关系的内容,因为它们已经被加载了。