我可以在 LINQ to SQL 上进行这种类型的 SQL 查询吗?
(此查询只是一个示例)
select *
from orders as o
left outer join (select * from ordersdetail where status = 'A') as od
on o.id = od.orderid
我需要的是如何将子查询放入“from”语句中。
谢谢
最佳答案
只需按照通常的方式执行订单详细信息条件即可:
from o in orders
join od from orderdetails on o.id = od.orderid
into details
where details.status == 'A'
select new { Order = o, Details = details}
(注意,Details 是一个序列,对于每个匹配的详细信息记录,可以使用 First 和 FirstOrDefault 等 LINQ 运算符仅提取一个。)
或者使用表达式作为数据源
from o in orders
join od from orderdetails.Where(d => d.Status == 'A') on o.id = od.orderid
into details
select new { Order = o, Details = details}
甚至,使用另一个理解表达式作为源表达式:
from o in orders
join od from (from d in orderdetails
where d.Status == 'A'
select d)
on o.id = od.orderid
into details
select new { Order = o, Details = details}
(设置 DataContext
的 Log
属性允许您查看 SQL,以便您可以比较实际生成的 SQL。)
编辑:更改为使用 Group Join (... into var
) 来获取外连接(而不是内连接)。
关于sql - 如何在 from 语句中使用子查询进行 LINQ 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1070122/