编辑:我受限于.Net 3.5 ...
我从Linq到Sql的存储过程检索了两个对象/集合(如果必须,我可以使用EF)。它们与数据库和我的数据库模型中的1对多关系相关。我可以将这两个对象联系起来,以便我可以像以下一样访问它们:
ParentObject.ChildObjects.FirstOrDefault().Property
...没有回到数据库?
答案 0 :(得分:0)
是的,有一种方法可以在LINQ to SQL中指定关系的急切加载。以下内容应该可以正常工作。
partial void OnCreated() {
DataLoadOptions options = new DataLoadOptions();
options.LoadWith<ParentObject>(o => o.ChildObjects);
this.LoadOptions = options;
}
这是指定数据上下文的OnCreate
部分中的选项,如果您希望规则在所有实例中保持不变,但您的情况可能不同,那么这很好。
我认为只有FYI加载更深层次的嵌套对象会有一些微妙的细微差别。
还应该注意,当请求父对象时,这只是急切地加载父对象的相关实体,它没有做任何魔术来组合初始父请求生成的查询。所以本质上现在每次请求父而不是一个时都会执行两个查询,优点是它不会返回到数据库以在枚举时检索关系的内容,因为它们已经被加载了。