使用Entity Framework Core加载多个实体

时间:2019-03-01 06:53:04

标签: .net-core entity-framework-core

我具有以下数据库结构: enter image description here

此数据库由实体框架核心创建,并具有以下代码结构:

        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();

感谢您的帮助。

1 个答案:

答案 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加载哪些子代。