如何在IQueryable中使用Linq

时间:2013-01-22 04:06:48

标签: c# linq entity-framework-4 iqueryable

我想加入IQueryable中的两个实体

这就是我的所作所为:

IQueryable<EmployeeSchedule> employeeScheduleResult = 
    from empSched in ctx.EmployeeSchedules.ToList() 
    join emp in ctx.Employees.ToList() on empSched.EmployeeId equals emp.EmployeeId 
    select new {
        empSched.ScheduleId,
        empSched.ScheduleDt,
        empSched.Branch,
        empSched.StartTime,
        empSched.EndTime,
        empSched.LunchTime,
        empSched.LunchBreak,
        empSched.LunchBreak_NS,
        Employee = emp.LastName + emp.FirstName + emp.MiddleName
    };

这是我收到的错误:

  

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Linq.IQueryable'。存在显式转换(您是否错过了演员?)

1 个答案:

答案 0 :(得分:1)

该错误与Join-clause无关。您得到此信息是因为您要求查询返回EmployeeSchedule的集合,但在选择中您创建了匿名类型。更改您的选择以返回新的EmployeeSchedules

select new EmployeeSchedule
{
    ScheduleId = empSched.ScheduleId,
    ScheduleDt = empSched.ScheduleDt,
    [...and so on..]
};