使用Lambda查询集合/联接表
本文关键字:集合 Lambda 查询 使用 | 更新日期: 2023-09-27 17:53:07
我有一个lambda 'where'查询,查询Order表如下:
List<Order> returnedOrders = _session.Query<Script>()Where(s => s.orderId == orderIdParam).ToList();
我还想检查相关OrderDetails
表中一列的值。因此returnedOrders
有OrderDetails
的集合,即returnedOrders.orderDetails
所以SQL查询看起来像这样:
Where OrderId = 12345 and Order.OrderDetail.CreatedDate = '01-Jan-2013'
谁能帮我用正确的语法?
您可以在Where
方法中使用逻辑与(&&
):
var date = new Date(2013,1,1);
List<Order> returnedOrders =
_session.Query<Script>()
.Where(s =>
s.orderId == orderIdParam &&
s.OrderDetails.Any(d => d.CreatedDate == date))
.ToList();
您也可以附加另一个Where
方法。
var date = new Date(2013,1,1);
List<Order> returnedOrders =
_session.Query<Script>()
.Where(s => s.orderId == orderIdParam)
.Where(s => s.OrderDetails.Any(d => d.CreatedDate == date))
.ToList();
既然你知道Id of order看起来没什么用但是像这样的
from order in orders
from detail in order.Details
where
order.Id = orderId &&
order.Id == detail.OrderId &&
detail.CreateDate == createDate
select order