昨天写EF查询的时候,竟然报错。代码如下:
错误信息如下:
LINQ to Entities 不识别方法“WinFormTools.Model.VideoInfo get_Item(Int32)”,因此该方法无法转换为存储表达式。
首先更新了数据库映射,其次查看了引入的DLL(VS10下,创建EF映射时,需要手动引入System.Data.Entity,否则没有IDispose,无法收回垃圾)。都没发现问题。结果查了一下,网上发现了一篇帖子,不过他的错误是:
LINQ to Entities 不识别方法“Int32 ToInt32(System.String)
链接如下:LINQ to Entities 不识别方法“Int32 ToInt32(System.String)
可能是因为无法动态编译的原因。红框中是错误代码。将红框中的代码替换为上一句那种写法后,发现没问题了。
所以,EF使用时,条件不能使用需要动态编译的变量。Framework 4.0下。
编译通过。运行时正常。yeah!
有喷的,可以留言,也可以发邮件:981243247@qq.com