将T-SQL转换为Linq

时间:2010-12-22 17:53:56

标签: linq linq-to-sql

我有以下T-SQL:

Select 
    MESReportHeaderID
From Report.MESReportHeader
Where 
    MESReportHeaderID IN (Select ParentID From Report.MESReportHeader) And 
    IsLeafLevel = 0

如果不是IN语句,那么转换为Linq会相当简单。任何人都可以帮忙吗?

感谢。

2 个答案:

答案 0 :(得分:2)

可能有更有效的方法,但我认为这是一个非常简单的使用扩展方法的翻译。

var headerIDs = ctx.ReportHeaders
                   .Where( r => ctx.ReportHeaders
                                   .Select( rh => rh.ParentID )
                                   .Contains( r.MESReportHeaderID )
                                && !r.IsLeafLevel )

答案 1 :(得分:0)

这个怎么样:

from r in reportHeaders
where reportHeaders.Any(r2 => r2.ParentId == r.MESReportHeaderID)
相关问题