将匿名投影到不映射导航属性的实体

时间:2015-05-14 16:24:07

标签: c# sql-server entity-framework linq-to-entities anonymous-types

我的表结构是这样的:

  • 表部门与表员工有一对一的关系
  • 表员工与表项目有一对多的关系
  • 表项目与表问题有一对多的关系
  • 表员工也与表问题有一对多的关系。

注意:有一个连接表“EmployeeProjects”(employeeid,projectid)。由于此表只是一个参考表,因此不会使用EF进行映射,也不会为其生成任何模型

var iQurableResult = DataContext.Department
                         .Include("Employee")
                         .Include("Employee.Projects")
                         .Include("Employee.Projects.Issues") 
                         .Where(filter => filter.IsSelected && filter.filterId == filterId)
                         .Select(x => new
                           {
                                dep = x,                                         
                                emp = x.Employee.
                                projects = x.Employee.Projects.Where(g=>g.Id==10)
                                //Project the 
                                _issues = x.Employee.Projects.Where(g=>g.Id==10).Select(x=>x.Issues)
                           }).ToList();

此时,我在iQurableResult中获取数据,并在匿名列表中提取过滤后的数据。

当我尝试将它们投射到实体中时,我无法获得Employee的项目。代码如下。

 var TableBList = iQurableResult.Select(y=>y.dep).ToList();

我的发现

我假设在投影时,Employee无法找到与表Projects的关系,因此未映射,但表问题映射在表员工中。

我应该如何获取与员工和项目相关的数据?

0 个答案:

没有答案