此数据库由实体框架核心创建,并具有以下代码结构:
public class Table1
{
public Table2 element1 { get; set; }
public Table2 element2 { get; set; }
public Table2 element3 { get; set; }
public Table3 element4 { get; set; }
}
出于某些原因,有必要在其中添加三个Table2元素而不是List!但是现在我有一个问题:
如果我想从数据库中加载带有所有子信息的Table1对象,我需要执行以下操作:
var myElement = db.table1.include(x=>x.element1).include(x=>x.element2).include(x=>x.element3).include(x=>x.element4).FirstOrDefault();
是否可以为所有孩子加载类似这样的内容:
var myElement = db.table1.IncludeAll().FirstOrDefault();
感谢您的帮助。
答案 0 :(得分:0)
否,没有选择加载所有子项的选项。但是您可以在一个地方进行管理。您可以添加和使用扩展方法,如下所示:
public static class Extensions
{
public static IQueryable<Table1> IncludeAll(this IQueryable<Table1> query)
{
return query
.Include(x => x.element1)
.Include(x => x.element2)
.Include(x => x.element3)
.Include(x => x.element4);
}
}
这样,您将可以在一个位置上调整为Table1
加载哪些子代。