2016-03-30 14 views
0

に動作しないことが含まれています。しかし、私はこれを行う場合:分割は、私がこれを行う場合は

var shipmentQuery = dataAccess.Shipments().Where(x => x.OriginId == originId); 

shipmentQuery 
    .Take(100) 
    .Include(shipment => shipment.Boxes); 

を次にボックスデータが含まれていません(。ボックスをすべての結果にNULLである)

は、クエリを破る場合は動作しないことになって含まれていますか?

そして、とにかくそれを解くことができるのですか? (私はいくつかの条件節を追加したい。)(Iは、SQL Server 2012データベースを接続するEntity Frameworkの6.1.3を使用しています。)

+0

こんにちは、私はあなたが同様にボックスのデータを取得するためにDbContextを伝えるが、二番目に、あなたは、単に出荷データを取得するためにDbContextを告げる最初のクエリではと思います。 –

+0

最初のクエリと2番目のクエリの数も確認できます。 100を超える出荷データがあれば、最初のデータは100、もう1つは100以上になると思います。 –

+0

2番目の例では、Take()。Include()部分は使用しないため何もしません/結果を割り当てます。 –

答えて

0

ちょうどインクルードは、最初の文と文を含め置きます。その時点でdbを実際に照会するのではなく、単なる照会定義なので、引っ張られる余分なレコードについて心配する必要はありません。このような

何か:

var shipmentQuery = dataAccess.Shipments().Where(x => x.OriginId == originId) 
    .Include(shipment => shipment.Boxes); 

// Extra query conditions can be applied here 

return shipmentQuery.Take(100); 
関連する問題