当前位置:编程学习 > C#/ASP.NET >>

Entities 不识别方法Contains怎么办?

我用的是3.5

 var listOfIds = new int[] { 5, 6, 7, 9};             
 var per = edm.perAut.Where(item =>listOfIds.Contains(item.id));         

错误提示:
LINQ to Entities 不识别方法“Boolean Contains[Int32] --------------------编程问答-------------------- Contains没错啊 --------------------编程问答-------------------- 看上去没错哈 --------------------编程问答-------------------- 好象是版本问题 --------------------编程问答-------------------- EF4才支持Contains,你可以试试这个方法
http://www.cnblogs.com/chriskwok/archive/2010/04/03/LINQ.html
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
引用 4 楼 feiyun0112 的回复:
EF4才支持Contains,你可以试试这个方法
http://www.cnblogs.com/chriskwok/archive/2010/04/03/LINQ.html
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/



我也试过个方法,但是id是int --------------------编程问答--------------------
var listOfIds = new int[] { 5, 6, 7, 9};             
 var per = edm.perAut.Where(item =>listOfIds.Any(x=>x==item.id));
          --------------------编程问答-------------------- 野蛮点的做法是这样子的:

var listOfIds = new int[] { 5, 6, 7, 9};             
 var per = edm.perAut.AsEnumerable().Where(item =>listOfIds.Contains(item.id));
          --------------------编程问答-------------------- 不行呀 --------------------编程问答-------------------- 7楼如此野蛮的方法也不行?

var per = edm.perAut.ToList().Where(item =>listOfIds.Contains(item.id)); --------------------编程问答--------------------
引用 7 楼 q107770540 的回复:
野蛮点的做法是这样子的:

var listOfIds = new int[] { 5, 6, 7, 9};             
 var per = edm.perAut.AsEnumerable().Where(item =>listOfIds.Contains(item.id));
         


这个可以 --------------------编程问答-------------------- 估计是版本的问题吧
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,