【发布时间】:2016-03-31 10:35:26
【问题描述】:
我有以下简化的 linq 查询:
IQueryable<PersonListItemDbTemp> query =
from pers in db.Person
join pe in db.PersonExtra on pers.PersonID equals pe.PersonID into ppe
from personExtra in ppe.DefaultIfEmpty()
select new PersonListItemDbTemp()
{
PersonnrAreDigits = pers.Personnr != null && pers.Personnr.All(p => char.IsDigit(p))
};
return query;
其中 pers.Personnr 是一个字符串。我得到以下异常:
System.ArgumentException:DbExpressionBinding 需要具有集合 ResultType 的输入表达式。 参数名称:输入 vid System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder.DbExpressionBuilder.BindAs(DbExpression 输入,字符串 varName) vid System.Data.Entity.Core.Objects.ELinq.ExpressionConverter.TranslateLambda(LambdaExpression lambda,DbExpression 输入,DbExpressionBinding& 绑定) 视频
我在这里做错了什么?
【问题讨论】:
-
通过异常对象名称,我猜是 linq-to-entities 和 EF 核心,但是是的,OP 应该标记它:-)
-
@TimSchmelter 这是 LINQ-to-Entities 和 EF6。
标签: c# entity-framework linq linq-to-entities