Linq to Entities不识别方法

    db.UserValidates.Include(a => a.User).Where(uv => u.UserValidates.Contains(uv, c)).ToList();

执行时出现:Linq to Entities不识别方法



解决方式可以使用lambda表达式树

 Expression<Func<UserValidate, bool>> express = uv => u.UserValidates.Contains(uv, c);
    db.UserValidates.Include(a => a.User).Where(express.Compile()).ToList();

 失败的原因是对应部分的代码无法转成sql语句执行,使用lambda表达式树可以的原因是对应的表达式树没有被翻译成sql语句,而是在获取数据后在内存中执行的

其中"1"处得代码转换成的sql如下

"2"处得代码转换成的sql如下

    

posted @ 2015-07-02 11:40  senki  阅读(769)  评论(0编辑  收藏  举报