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

如何从我的表中写入select,linq中的id(select…)在哪里?

  •  7
  • ScottG  · 技术社区  · 17 年前

    你如何在linq中重写这个?

    SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)
    

    所以在简单的英语中,我想从tablea中选择id和name,其中tablea的id在第二个查询的结果集中。

    3 回复  |  直到 13 年前
        1
  •  9
  •   John Boker    13 年前
    from a in TableA 
    where (from b in TableB 
           join c in TableC on b.id equals c.id
           where .. select b.id)
    .Contains(a.Id) 
    select new { a.Id, a.Name }
    
        2
  •  4
  •       17 年前

    Linq以包含的形式支持。想想“collection.contains(id)”而不是“id in(collection)”。

    from a in TableA
    where (
        from b in TableB
        join c in TableC
            on b.id equals c.id
        select b.id
    ).Contains(TableA.Id)
    select new { a.Id, a.Name }
    

    另请参阅此日志 post .

        3
  •  1
  •   aku    17 年前

    在LINQ中没有开箱即用的支持。您需要加入2个查询。