Платформа сущностей не загружает отношения даже при использовании include - PullRequest
0 голосов
/ 01 апреля 2010

У меня есть этот код:

      Category selectedCategory = (from c in DB.Category.Include("SubCategory")
               join a in DB.Accessory on c.AccCatUID equals a.Category.AccCatUID
               where a.AccUID == currentAccessory.AccUID
               select c).FirstOrDefault();

Работает нормально, selectedCategory заполняется, как и ожидалось. НО selectedCategory имеет дочернюю таблицу SubCategory, которая не загружается, даже если там есть включение. Он не загружается, пока я не сделаю это:

            selectedCategory.SubCategory.Load();

Почему я должен явно вызывать load для загрузки дочерней таблицы?

EDIT: Использование .net 3.5 VS2008

1 Ответ

0 голосов
/ 01 апреля 2010

Включение отбрасывается, поскольку оно связано с первым ObjectQuery, а не с набором результатов, который возвращается.

Я думаю, вам просто нужно переделать свой запрос? Если я не пропустил что-то, что вам действительно нужно ниже, я нигде не видел, чтобы вы использовали присоединение аксессуаров.

        Category selectedCategory = (
             from c in DB.Category.Include("SubCategory")
                where c.AccCatUID == currentAccessory.AccUID
             select c
         ).FirstOrDefault();

или со стороны

          var fromAccessoryCategory  = 
          (from a in DB.Accessory.Include("Category.SubCategory") 
             where a.AccUID == currentAccessory.AccUID
           select a.Category).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...