【发布时间】:2021-03-01 21:47:48
【问题描述】:
我无法将特定值输入Untis_Proffield。
代码示例:
foreach (EnseignantReport test in grades)
{
test.Untis_Prof = this._dbContext.Teachers.FirstOrDefaultAsync(c =>
test.Untis_Prof == string.Join(" ", new[] {c.LastName, c.FirstName }))
.Result.UntisCode;
}
错误:
System.InvalidOperationException:LINQ 表达式
'DbSet<Teacher>().Where(t => __progress_EnteringTeacherName_0 == string.Format(format: "{0} {1}",arg0: t.LastName,arg1: t.FirstName))'
无法翻译。附加信息:方法'string.Format'的翻译失败。如果此方法可以映射到您的自定义函数,请参阅https://go.microsoft.com/fwlink/?linkid=2132413 了解更多信息。以可翻译的形式重写查询,或通过插入对“AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。
在
Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.g__CheckTranslated|15_0(ShapedQueryExpression 已翻译,c__DisplayClass15_0& )
在
Microsoft.EntityFrameworkCore.Query.QueryableMethodTranslatingExpressionVisitor.VisitMethodCall(MethodCallExpression methodCallExpression)
有人可以帮我吗?
【问题讨论】:
-
您显示的错误信息与代码示例不匹配(代码示例中没有
string.Format) -
您是否尝试过只创建字符串而不调用其他方法?也许如果你做了类似的事情:
$"{c.LastName} {c.FirstName}"(或c.LastName + " " + c.FirstName)
标签: c# asp.net .net entity-framework