2009-06-29 6 views
1

Ich weiß, LINQ hat nicht die SQL IN-Klausel, sondern verwendet "enthält". Kann ich das für eine LinqDataSource verwenden? Ich möchte eine einfache Abfrage schreiben, die gleichbedeutend ist: SELECT * FROM tableA WHERE tableA.requestType nicht IN (5,6,7,8) UND tableA.someBitField ist NULL.LinqDataSource Query-Hilfe

Ist dies möglich mit der LinqDataSource out of the Box? Danke für alle Hinweise.

Cheers, ~ ck in San Diego

Antwort

3

Ja, durchaus möglich. Behandeln Sie einfach das Selecting-Ereignis in der Datenquelle. Die Klassenseite LinqDataSoruce auf MSDN enthält bereits ein gutes Beispiel. Ändern das:

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

Vielen Dank! – Hcabnettek

+0

Wir sind hier um zu helfen! :) – Randolpho