在Entity Framework中的Join Statement中使用Include Statement功能

时间:2011-09-15 11:34:08

标签: c# .net entity-framework

我对这样的两个实体进行了linq查询

IQueryable<Employee> employees = CreateObjectSet<Employee>().AsQueryable();
IQueryable<Department> depts = CreateObjectSet<Department>().AsQueryable();

        var result = (from employee in employees                         
                      join dept in depts
                          on emp.DeptID equals dept.ID
                             select employee

我的Employee实体有一个Department的导航属性并返回它的整个对象,但是这个查询不返回Department信息,我想我要设置select语句中的值,如下所示

                 var result = (from employee in employees                         
                      join dept in depts
                          on emp.DeptID equals dept.ID
                           ****  employee.Dept=dept            ****
                                select employee

我不想设置Employee类的所有属性,因此返回该新对象,请告诉我一些更好的方法。

由于

2 个答案:

答案 0 :(得分:1)

你不能用“let”语句作为黑客吗?

 var result = (from employee in employees                         
                  join dept in depts
                      on employee.DeptID equals dept.ID
                       let notUtile = employee.Dept=dept
                            select employee);

答案 1 :(得分:1)

我的理解是你想要选择所有员工以及他们的部门(如果我错了,请纠正我)。如果您有导航属性,则根本不需要加入。您可以像这样使用Include

List<Employee> employeesWithDepartments = CreateObjectSet<Employee>().
                                          Include(e => e.Department).
                                          ToList();