所以,我有一个“Speaker”类,具有正常的属性,以及一个像这样的普通方法:
public string FullNameFirstLast()
{
return FirstName + " " + LastName;
}
我正在使用Entity Framework Code First Magic Unicorn版本,我收到此错误:
System.NotSupportedException:LINQ to 实体无法识别该方法 'System.String FullNameFirstLast()' 方法,这个方法不能 翻译成商店表达。
这看起来很奇怪,因为它是一种方法而不是属性,所以我想知道为什么EF会关心它...所以我试着告诉EF忽略它:
modelBuilder.Entity<Speaker>()
.Ignore(ignore => ignore.FullNameFirstLast())
;
这没有帮助,因为现在我收到此错误消息:
System.InvalidOperationException:The 表达式'ignore =&gt; ignore.FullNameFirstLast()'不是 有效的属性表达。该 表达应该代表一个 property:C#:'t =&gt; t.MyProperty” VB.Net:'Function(t)t.MyProperty'。
我该怎么做?我假设我可以使用EF在我的模型对象上有方法,对吧?
答案 0 :(得分:5)
这不是映射问题。在Linq-to-entities查询中使用该方法的问题。您不能在Linq-to-entities查询中使用自定义方法或自定义属性,因为EF提供程序不知道如何将它们转换为SQL。