TSQL到LINQ转换参考?

时间:2009-02-14 02:46:30

标签: linq tsql

我正在尝试找一个很好的参考来帮助我将这个SQL语句转换为Linq:示例:

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

我找不到任何引用WHERE“IN”部分的地方。

3 个答案:

答案 0 :(得分:2)

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

另见this related question

答案 1 :(得分:1)

看看是否有效:

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替换了它。

答案 2 :(得分:1)

使用扩展方法......

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,我发现使用谷歌并指定site: stackoverflow.com会更好。 YMMV。