2008-12-05 39 views

cevap

47
List<string> states = new List<string> { "CA", "IN", "MD" }; 
    var q = from a in authors 
      where !states.Contains(a.state) 
      select new { a.au_lname, a.state }; 

veya

İçeren ile
var q = authors.Where(a => !states.Contains(a.state)) 
        .Select(a => new { a.au_lname, a.state }); 
5

yazarlar SELECT au_lname, devlet bir örnek:

NorthwindDataContext dc = new NorthwindDataContext(); 
dc.Log = Console.Out; 
var query = 
    from c in dc.Customers 
    where !(from o in dc.Orders 
      select o.CustomerID) 
      .Contains(c.CustomerID) 
    select c; 
foreach (var c in query) Console.WriteLine(c); 
+0

var gerçekten alt sorgu yapmak gerekir -/İçeriyor! Içerir ana sorgu bağlamında çalışacaktır. – Rob

8

bunu yapabilirsiniz:

 var states = new[] {"CA", "IN", "MD"}; 
     var query = db.Authors.Where(x => !states.Contains(x.state)); 
4

Evet!

Burada zaten yazdığı koddan bir örnek var:


      List<long> badUserIDs = new List { 10039309, 38300590, 500170561 }; 
      BTDataContext dc = new BTDataContext(); 
      var items = from u in dc.Users 
         where !badUserIDs.Contains(u.FbUserID) 
         select u; 

oluşturulan SQL olarak çıkıyor:

{SELECT [t0].[UserID], [t0].[FbUserID], [t0].[FbNetworkID], [t0].[Name], FROM [dbo].[Users] AS [t0] WHERE NOT ([t0].[FbUserID] IN (@p0, @p1, @p2)) }