LINQ to Entities无法识别方法'System.String get_Item(System.String)'方法

use*_*231 11 linq entities iqueryable

我已经看过这里的各种解决方案,但它们似乎都不适合我,可能是因为我对这一切都太新了,而且我在黑暗中摸索了一下.在下面的代码中,对象"约会"包含一些基本的LDAP信息.从这些对象的列表中,我希望能够根据员工ID获得单个记录.我希望这里的代码足以说明.FTR,我尝试了各种配方,包括尝试使用和选择.所有都失败,上面标题中给出了错误.

IQueryable<appointment> query = null;

foreach(var record in results)
{
    BoiseStateLdapDataObject record1 = record;
    query = db.appointments.Where(x => x.student_id == record1.Values["employeeid"]);
}

if (query != null)
{
    var selectedRecord = query.SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 21

尝试将员工ID移出查询:

IQueryable<appointment> query = null;

foreach(var record in results)
{
    var employeeId = record.Values["employeeid"];
    query = db.appointments.Where(x => x.student_id == employeeId);
}

if (query != null)
{
    var selectedRecord = query.SingleOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

  • @ user2283231当你使用Linq to Entities时,表达式树被传递给`Where`方法,然后它被分析并转换为SQL.EF根本无法将索引器调用转换为SQL.这就是为什么通过普通值来解决这个问题.如果有帮助,请随时接受答案:) (3认同)