在 SQL 中,它会这样完成:
SELECT * FROM Student
WHERE SchoolId IN
(SELECT id FROM School WHERE Name LIKE '%elementary%')
如何使用 LINQ 实现这一点?我尝试了以下方法:
var list = context.Students.Where(x => context.Schools.Where(r => r.Name.Contains("elementary").Select(r => r.Id).Contains(x.SchoolId))
但不幸的是,它并没有给我想要的东西......
我知道可以Id
先从表中检索所有 s School
,但我认为这会对性能造成严重影响。最好我希望 LINQ to SQL 来处理所有事情;我不能使用 vanilla SQL 来做到这一点,因为我需要动态的东西,而目前 LINQ 对我来说是最好的解决方案。
上面的代码都是为了说明目的;我正在做的是有点不同(但或多或少相同)。我确实需要一些帮助;如果您需要更多信息,请随时询问。
编辑:我的错,我错过了一个领域。它有效,但结果没有出现,因为我错过了那个领域......很抱歉......