将T-SQL转换为Linq
我有以下T-SQL:将T-SQL转换为Linq,linq,linq-to-sql,Linq,Linq To Sql,我有以下T-SQL: Select MESReportHeaderID From Report.MESReportHeader Where MESReportHeaderID IN (Select ParentID From Report.MESReportHeader) And IsLeafLevel = 0 如果不是IN语句,那么将其转换为Linq就相当简单了。有人能帮忙吗 谢谢。这个怎么样: from r in reportHeaders where rep
Select
MESReportHeaderID
From Report.MESReportHeader
Where
MESReportHeaderID IN (Select ParentID From Report.MESReportHeader) And
IsLeafLevel = 0
如果不是IN语句,那么将其转换为Linq就相当简单了。有人能帮忙吗
谢谢。这个怎么样:
from r in reportHeaders
where reportHeaders.Any(r2 => r2.ParentId == r.MESReportHeaderID)
也许有更有效的方法可以做到这一点,但我认为这是一个使用扩展方法的非常直接的翻译
var headerIDs = ctx.ReportHeaders
.Where( r => ctx.ReportHeaders
.Select( rh => rh.ParentID )
.Contains( r.MESReportHeaderID )
&& !r.IsLeafLevel )
这与选择所有具有parentID且isLeafLevel=0的对象不一样吗???@Gage-是的,如果这是整个查询的话。我试着通过去掉不必要的杂乱来简化它。它比所显示的内容更重要。