【问题标题】:TSQL to LINQ conversion reference?TSQL 到 LINQ 转换参考?
【发布时间】:2009-02-14 02:46:30
【问题描述】:

我正在尝试找到一个很好的参考来帮助我将此 TSQL 语句转换为 Linq:

示例:

SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)

我找不到任何地方可以参考如何执行 WHERE "IN" 部分。

【问题讨论】:

    标签: linq tsql


    【解决方案1】:

    虽然它完全不是 TSQL 到 LINQ 的参考,但我发现 MSDN 上的 101 LINQ Samples 页面对此很有帮助。

    另见this related question

    【讨论】:

    【解决方案2】:

    看看这是否有效:

    var qry = from c in Categories
              where (from pc in ProductCategories where pc.CatID = 23 select pc.ProductID).Contains(c.ProductID)
              select c;
    

    我不知道 LinqToSQL 中的 IN WHERE 部分是否有直接翻译(未找到任何参考),但我将其替换为 Contains

    【讨论】:

      【解决方案3】:

      使用扩展方法...

      var productIDs = context.ProductCategories
                              .Where( c => c.CatID == 23 )
                              .Select( c => c.ProductID );
      var categories = context.Categories
                              .Where( c => productIDS.Contains( c => c.ProductID ) );
      

      编辑:101 Linq Samples 对于简单的事情来说是一个很好的参考。对于更复杂的东西,我发现我通常不得不求助于谷歌。仅供参考,如果您想搜索 StackOverflow,我发现使用 google 并指定 site: stackoverflow.com 效果更好。 YMMV。

      【讨论】:

        猜你喜欢
        • 2016-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 2012-05-07
        相关资源
        最近更新 更多