0

次のように Order テーブルをクエリするラムダ 'where' クエリがあります。

List<Order> returnedOrders = _session.Query<Script>()Where(s => s.orderId == orderIdParam).ToList();

OrderDetails関連テーブルの列の値も確認したい。のコレクションreturnedOrdersがありますOrderDetailsreturnedOrders.orderDetails

したがって、SQL クエリは次のようになります。

Where OrderId = 12345 and Order.OrderDetail.CreatedDate = '01-Jan-2013'

誰でも正しい構文で私を助けてくれますか?

4

2 に答える 2

1

メソッド&&内で論理積()を使用できます。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();
于 2013-01-15T12:01:23.610 に答える
0

オーダーのIDはわかっているので無駄に思えますがこんな感じ

from order in orders 
from detail in order.Details 
where 
    order.Id = orderId && 
    order.Id == detail.OrderId && 
    detail.CreateDate == createDate
select order
于 2013-01-15T12:02:51.027 に答える