我正在尝试找一个很好的参考来帮助我将这个SQL语句转换为Linq:示例:
SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)
我找不到任何引用WHERE“IN”部分的地方。
答案 0 :(得分:2)
虽然它不是完全 TSQL到LINQ参考,但我发现MSDN上的101 LINQ Samples页面对此有用。
答案 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。