EF4.1 Eager加载的链接对象返回null

时间:2011-05-16 15:47:05

标签: linq-to-sql entity-framework-4 eager-loading

有人可以解释为什么返回公司但是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 个答案:

答案 0 :(得分:2)

Company.CompanyServices属性是否标记为虚拟? Check out ScottGu's blog在实体框架上,他创建了具有一对多关系的POCO类,并将集合属性标记为虚拟。

当我第一次开始使用EF 4时,这让我难以忍受了一段时间。

显然我看不到你的实体课,所以这可能是一个没有实际意义的点!

答案 1 :(得分:0)

找到一个并非完全没有意义的答案,但它的作用是主要的。

很高兴看到在原始查询中播放的内容......

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();