EF6 включает загрузку против загрузки, включает загрузку не всех дочерних объектов - PullRequest
0 голосов
/ 18 марта 2020

Я использую EF6, но когда я хочу загрузить одну сущность, у меня возникают некоторые проблемы

        var salesOrder = _unitOfWork.With<SalesOrder>().Where(x => x.Guid == guid)
            .Include(x => x.SalesOrderLines)
            .Include(x => x.ShippingAddress)
            .Include(x => x.BillingAddress)
            .Include(x => x.SoldTo)
            .FirstOrDefault();

У SoldTo есть коллекция адресов, я хочу, чтобы они также загружались, но почему-то я не Это невозможно.

Для ShippingAddress и BillingAddress задан один из адресов объекта SoldTo.

Когда этот запрос выполняется, я получаю только SoldTo с 1 загруженным адресом в памяти из БД.

Если я использую этот подход

        var salesOrder = _unitOfWork.With<SalesOrder>().FirstOrDefault(x => x.Guid == guid);
        _unitOfWork.Entry(salesOrder).Reference(x => x.SoldTo).Load();
        _unitOfWork.Entry(salesOrder.SoldTo).Collection(x => x.Addresses).Load();

, объект SoldTo заполняется обоими его адресами, а также заполняется ShippingAddress и BillingAddress заполняется. без действительно загружаем данные из объекта salesOrder.

Что здесь происходит? Кажется, я не понимаю механики, стоящей за этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...