TSQL 到 LINQ 转换参考?
Posted
技术标签:
【中文标题】TSQL 到 LINQ 转换参考?【英文标题】:TSQL to LINQ conversion reference? 【发布时间】:2009-02-14 02:46:30 【问题描述】:我正在尝试找到一个很好的参考来帮助我将此 TSQL 语句转换为 Linq:
示例:
SELECT * FROM Categories WHERE ProductID IN (SELECT ProductID FROM ProductCategories WHERE CatID = 23)
我找不到任何地方可以参考如何执行 WHERE "IN" 部分。
【问题讨论】:
【参考方案1】:虽然它完全不是 TSQL 到 LINQ 的参考,但我发现 MSDN 上的 101 LINQ Samples 页面对此很有帮助。
另见this related question
【讨论】:
谢谢 - 这是:msdn.microsoft.com/en-us/vcsharp/aa336761.aspx#intersect2 我在找什么? TSQL“IN”=Linq“相交”? 哎呀 - 我刚刚看到你的“这个相关问题”,它给了我正在寻找的答案。【参考方案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 对于简单的事情来说是一个很好的参考。对于更复杂的东西,我发现我通常不得不求助于谷歌。仅供参考,如果您想搜索 ***,我发现使用 google 并指定 site: ***.com
效果更好。 YMMV。
【讨论】:
以上是关于TSQL 到 LINQ 转换参考?的主要内容,如果未能解决你的问题,请参考以下文章