Как включить недвижимость - PullRequest
1 голос
/ 19 августа 2010

У меня есть следующий пример:

using (MyContext context = new MyContext())
{
    var query = from entityA in context.EntityA.Include("TestProperty")
                join entityB in context.EntityB on entityA.Id equals entityB.EntityAId
                join entityC in context.EntityC on entityB.Id equals entityC.EntityBId
                where entityC.Id == id
                select entityA;

    List<EntityA> toReturn = query.ToList();

    return toReturn;
}

Все мои объединения работают должным образом, однако мое свойство навигации 'TestProperty' загружено неправильно.Я смотрю, во время выполнения, и это ноль.

Когда я делаю следующее:

context.LoadProperty(toReturn, "TestProperty");

Он загружает свойство 'TestProperty' правильно.Есть ли что-то, что я делаю неправильно в своем операторе LINQ-to-SQL?

ОБНОВЛЕНИЕ: я изменил первую строку на:

from entityA in context.EntityA.Include("TestProperty").ToList()

И оставил остальные строки ниже этогото же самое, и он загрузил мою собственность правильно.Это правильное решение проблемы?

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

"Это правильное решение проблемы?"это худшее из возможных решений, потому что теперь вы выполняете весь запрос на стороне клиента.

0 голосов
/ 14 ноября 2011

Включить должно быть написано после присоединения и пункт

Проверьте это:

var query = ((from entityA in context.EntityA
                join entityB in context.EntityB on entityA.Id equals entityB.EntityAId
                join entityC in context.EntityC on entityB.Id equals entityC.EntityBId
                where entityC.Id == id
                select entityA) as objectQuery<EntityA>).Include("TestProperty")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...