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

11

我看过这里的各种解决方案,但似乎都不适用于我,可能是因为我对所有这些都太陌生了,有点摸不着头脑。在下面的代码中,对象“appointment”包含一些基本LDAP信息。从一系列这样的对象中,我想根据员工ID获取单个记录。我希望这里的代码足以说明问题。顺便提一句,我尝试过各种公式,包括尝试使用from和select,但都会出现上面标题中给出的错误。

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();
}
1个回答

21
尝试将员工ID移出查询:

尝试将员工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();
}

谢谢。问题已解决。你能告诉我为什么它被解决了吗?或者这超出了这个论坛的范围? - user2283231
3
当你使用 Linq to Entities 时,表达式树被传递给 Where 方法,然后进行分析并转换为 SQL。EF 无法将索引器调用转换为 SQL。这就是为什么传递普通值可以解决问题的原因。如果答案有帮助,请随意接受它 :) - Sergey Berezovskiy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接