代码之家  ›  专栏  ›  技术社区  ›  jinsungy

使用“不在”的LINQ到SQL查询

  •  25
  • jinsungy  · 技术社区  · 16 年前

    可以使用LINQ进行SQL查询吗 不在

    e、 例如,从状态不在('CA'、'IN'、'MD'中的作者中选择au_lname、state)

    4 回复  |  直到 7 年前
        1
  •  51
  •   tvanfosson    15 年前
        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 };
    

       var q = authors.Where( a => !states.Contains( a.state ) )
                      .Select( a => new { a.au_lname, a.state } );
    
        2
  •  9
  •   Christian C. Salvadó    16 年前

    您可以使用以下内容执行此操作:

           var states = new[]  {"CA", "IN", "MD"};
           var query = db.Authors.Where(x => !states.Contains(x.state));
    
        3
  •  7
  •   Galwegian    16 年前

    下面是一个例子:

    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 );
    
        4
  •  4
  •   Rob    16 年前

    
                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;
    

    生成的SQL结果是:

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