2009-07-01 8 views
11

je rencontre une erreur:LINQ to SQL erreur: « int [] » ne contient pas de définition pour CONTAINS

Erreur 2 « int [] » ne contient pas une définition pour « Contient » et a quelques arguments invalides

la meilleure surcharge de méthode d'extension 'System.Linq.Enumerable.Contains (System.Collections.Generic.IEnumerable, Tsource)' Ceci est mon code:

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

Quel type de données est le item.Type de propriété? –

Répondre

23

Je soupçonne fortement que item.Type n'est pas un int. Est-ce une énumération? Si oui, essayez de caster explicitement:

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

Sinon, comme la notation par points:

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

Que faire si item.Type est un int? (Null able int) –

+0

@AvneeshSrivastava: Ensuite, cela dépend du type 'validType', et ce que vous voulez faire si' item.Type' est null. En supposant qu'il s'agit d'un problème auquel vous êtes actuellement confronté, je vous suggère d'essayer différentes choses, puis de poser une nouvelle question avec tous les détails pertinents si nécessaire. –

+0

Salut Jon oui je suis confronté à ce problème, j'ai posé une nouvelle question http://stackoverflow.com/q/37608704/2794391 J'ai aussi essayé beaucoup de choses du matin s'il vous plaît aidez-moi. –

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

`