2009-07-01 80 views
11

我有一个错误:LINQ到SQL错误:“INT []”不包含定义为“包含”

错误2“INT []”不包含定义为“包含”和最佳推广方法重载“System.Linq.Enumerable.Contains(System.Collections.Generic.IEnumerable,TSource)”有一些无效参数

这是我的代码:

public partial class mymymy : System.Web.UI.Page 
{ 
    int[] validType = { 2, 3, 4, 5, 6, 8, 13, 14, 16, 22 }; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
    { 
     using (var dc = new soxMainDataContext()) 
     { 
      var qry = from item in dc.LeaveRequests 
        where **validType**.Contains(item.Type) 
         && item.MgtApproval == null 
        select item; 
      e.Result = qry; 
     } 
    } 
} 
+1

什么数据类型是物业项目。形式? – 2009-07-01 13:24:27

回答

23

我强烈怀疑, item.Type不是int。它是一个枚举吗?如果是的话,尽量明确地铸造:

var qry = from item in dc.LeaveRequests 
      where validType.Contains((int) item.Type) 
       && item.MgtApproval == null 
      select item; 

此外,作为点符号:

var query = dc.LeaveRequests.Where(item => validType.Contains((int) item.Type) 
              && item.MgtApproval == null); 
+0

如果item.Type是一个int? (Null able int) – 2016-06-03 07:08:40

2
var consulta = from pr in lsprodcts 
       where pr.nProductoID.ToString().Contains(Idproducto.ToString()) 
       select new 
       { 
        pr.nProductoID, 
        ProdName = pr.cNombre, 
        pr.cDescripcion, 
       }; 

`