【发布时间】:2014-10-10 21:02:08
【问题描述】:
T-SQL 查询
Select * from dbo.User_Users
Where UserID IN (Select UserID from Course_Enrollments)
LINQ to Entities 替代上述查询
var innerquery = from en in Course_Enrollments
select en.UserID;
var query = from u in User_Users
where innerquery.Contains(u.UserID)
select u;
* 上有很多复杂的子查询,我只想看一个简单的例子,说明如何通过 linq 完成一个简单的子查询。我就是这样做的,但它不好,因为它向数据库发送了 2 个查询。
【问题讨论】:
-
您是否确认通过分析器发送了 2 个查询?通常,在枚举 IQueryable 或使用 ToList 或 FirstOrDefault 之类的东西之前,查询不会具体化。