Tra*_*rde 2 linq-to-entities entity-framework entity-framework-4.1
所以,我有一个具有普通属性的"Speaker"类,以及一个像这样的普通旧方法:
public string FullNameFirstLast()
{
return FirstName + " " + LastName;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Entity Framework Code First Magic Unicorn版,我收到此错误:
System.NotSupportedException:LINQ to Entities无法识别方法'System.String FullNameFirstLast()'方法,并且此方法无法转换为商店表达式.
这看起来很奇怪,因为它是一种方法,而不是属性,所以我想知道为什么EF会关心它...所以我试着告诉EF忽略它:
modelBuilder.Entity<Speaker>()
.Ignore(ignore => ignore.FullNameFirstLast())
;
Run Code Online (Sandbox Code Playgroud)
这没有用,因为现在我收到此错误消息:
System.InvalidOperationException:表达式'ignore => ignore.FullNameFirstLast()'不是有效的属性表达式.表达式应该表示一个属性:C#:'t => t.MyProperty'VB.Net:'Punction(t)t.MyProperty'.
我该怎么做呢?我假设我的模型对象上有EF方法,对吧?
这不是映射问题.在Linq-to-entities查询中使用该方法的问题.您不能在Linq-to-entities查询中使用自定义方法或自定义属性,因为EF提供程序不知道如何将它们转换为SQL.
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |