我很难弄清楚如何将此查询转换为LINQ语句。我甚至不知道从哪里开始。
SELECT
*
FROM
TestRFRVWL x
WHERE x.TestPALID IN
(SELECT
a.TestPALID
FROM
dbo.GroupID(nolock) a
INNER JOIN
dbo.CustomPAl(nolock) b ON
a.TestPALID = b.TestPALID
WHERE GroupID LIKE '%A12345%'
);
答案 0 :(得分:0)
接近文字翻译看起来像:
from x in TestRFRVWL
where (from a in GroupID
join b in CustomPAl
on a.TestPALID equals b.TestPALID
select a.TestPALID).Contains(x.TestPALID)
select x;
鉴于你并没有真正使用联接加入,我可能更喜欢这样的东西:
from x in TestRFRVWL
where dbo.GroupID.Any(a => a.TestPalID == x.TestPalID) &&
dbo.CustomPAl.Any(b => b.TestPalID == x.TestPalID)
select x;
甚至是方法语法中的东西:
TestRFRVWL.Where(x => dbo.GroupID.Select(a => a.TestPalID).Contains(x.TestPalID) &&
dbo.CustomPAl.Select(b => b.TestPalID).Contains(x.TestPalID))
但我不确定哪个会生成最好的SQL。