2009-06-29 17 views
1

Je sais que LINQ n'a pas la clause SQL IN mais utilise plutôt "contains". Puis-je l'utiliser sur un LinqDataSource? Je souhaite écrire une requête simple qui équivaut à ceci: SELECT * FROM tableA O table tableA.requestType NOT IN (5,6,7,8) ET tableA.someBitField IS NULL. Est-ce possible en utilisant le LinqDataSource out of the box? Merci pour les pointeurs.Aide à la requête LinqDataSource

Cheers, ~ ck à San Diego

Répondre

3

Oui, tout à fait possible. Il suffit de gérer l'événement Selecting sur la source de données. La page de classe LinqDataSoruce sur MSDN contient déjà un excellent exemple. Modifier cela:

public partial class Default3 : System.Web.UI.Page 
{ 
    int[] validRequestTypes = { 5, 6, 7, 8 }; 

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

    protected void LinqDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
    { 
     using(var dc = new MyDataContext()) 
     { 
      var qry = from item in dc.tableAs 
         where validRequestTypes.contains(item.requestType) 
         && item.someBitField == null 
         select item; 
      e.Result = qry; 
     } 
    } 
} 
+1

Merci beaucoup! – Hcabnettek

+0

Nous sommes là pour vous aider! :) – Randolpho