我试图找到一个很好的参考,帮助我这个TSQL语句转换到LINQ:TSQL转换为LINQ转换参考?
例:
SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)
我不能在任何地方找到引用怎么办WHERE“IN”部分。
我试图找到一个很好的参考,帮助我这个TSQL语句转换到LINQ:TSQL转换为LINQ转换参考?
例:
SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)
我不能在任何地方找到引用怎么办WHERE“IN”部分。
虽然它不是刚好 TSQL转LINQ参考,我发现MSDN上的101 LINQ Samples页有助于此目的。
见,如果这个工程:
var qry = from c in Categories
where (from pc in ProductCategories where pc.CatID = 23 select pc.ProductID).Contains(c.ProductID)
select c;
我不知道是否有是IN的直接转换凡在LinqToSQL部分(没有找到任何引用),但我用Contains
取而代之。
使用扩展方法...
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的样品是简单的事情,一个很好的参考。对于更复杂的东西,我发现我通常不得不求助于谷歌。仅供参考,如果你想搜索StackOverflow,我发现它使用谷歌更好,并指定site: stackoverflow.com
。因人而异。
谢谢 - 是这样的:http://msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect2我在寻找什么呢? TSQL“IN”= Linq“相交”? – EdenMachine 2009-02-14 03:13:46