Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将T-SQL转换为Linq_Linq_Linq To Sql - Fatal编程技术网

将T-SQL转换为Linq

将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

我有以下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 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-是的,如果这是整个查询的话。我试着通过去掉不必要的杂乱来简化它。它比所显示的内容更重要。