EF4.1 Загруженные связанные объекты возвращаются с нулевым значением - PullRequest
1 голос
/ 16 мая 2011

Может кто-нибудь объяснить, почему возвращается компания, но Company.CompanyServices не имеет значения (хотя я создал ее в тесте)?

        public List<Company> GetContactCompanies(int contactId)
        {
          var query = (
                        from directorCompany in ctx.CompanyDirectors
                          .Where(d => d.ContactAddress.Contact.Id == contactId)
                          .Include(d => d.Company.CompanyServices)
                        select directorCompany.Company
                      ).OrderBy(c => c.CompanyName).Distinct();
          return query.ToList();
        }

Примечание, заменяющее параметр Включить для .Include("Company.CompanyServices"), не имеет никакого эффекта

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Помечено ли свойство Company.CompanyServices как виртуальное? Посмотрите блог ScottGu о структуре сущностей, где он создает классы POCO с отношениями один-ко-многим, помечая свойства коллекции как виртуальные.

Когда я впервые начал использовать EF 4, это меня озадачилодовольно долго.

Очевидно, я не вижу ваших классов сущностей, так что это может быть спорным вопросом!

0 голосов
/ 16 мая 2011

Нашел ответ, который не совсем интуитивен, но он работает, и это главное.

Рад видеть ответ, который играет на исходном запросе ...

var query = (
                    from directorCompany in ctx.CompanyDirectors
                      .Where(d => d.ContactAddress.Contact.Id == contactId)
                    select directorCompany.Company
                  ).OrderBy(c => c.CompanyName).Distinct();
      return query.Include(c => c.CompanyServices).ToList();
...