Загрузка нескольких сущностей с помощью Entity Framework Core - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующая конструкция базы данных: 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 голосов
/ 03 марта 2019

Нет, нет возможности загрузить все дочерние элементы.Но вы можете управлять этим в одном месте.Вы можете добавить и использовать метод расширения следующим образом:

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 в одном месте.

...