2016-08-18 5 views
0

多くのデータをフェッチするLINQクエリがあります(下記参照)。このクエリは、タイムアウトの問題を引き起こしているので、フィルターをかけて必要なレコードのみを取得しようとしています。特定の日付の注文を取得しようとしています。日付フィールドはOrderテーブルにありますが、以下のLINQクエリにどのように組み込む必要がありますか。私は追加しようとしました.Where(...)の後に.Includeしかし、それは私にエラーを与える。LINQでのナビゲーションプロパティのフィルタリング

var productEntities = _context.Set<Product>() 
      .Include(p => p.OrderItems) 
      .Include(p => p.OrderItems.Select(oi => oi.Order)) 
      .Include(p => p.OrderItems.Select(oi => oi.Order.Client))     
      .ToList(); 
+0

:私はまさに何あなたのテーブルの関係を知らないが、アイデアのようなもので、製品を取得するために、SelectManyを使用して、日付と最初の試みフィルタリング受注を言うとう。どこか(..) 'コール?エラーを指定できますか?私は、もう少し情報を必要とするのではないかと心配しています。 – Raxr

+1

特定の日付の* Ordersを取得しようとすると、なぜ '_context.Orders'をクエリしないのですか? –

答えて

0

は私が注文は、あなたが実際にあなたのSQLは、同様のデータベースに加入絞り込む拳であなたが行けばIvan Stoevは、権利であると信じています。あなたは `とコードスニペットを提供することができ

var productEntities = _context.Set<Order>() 
     .Where(o=>o.Date>=_dateFrom &&o.Date<=_dateTo) 
     .SelectMany(o=>o.OrderItem.Product)  
     .Include(p => p.OrderItems) 
     .Include(p => p.OrderItems.Select(oi => oi.Order)) 
     .Include(p => p.OrderItems.Select(oi => oi.Order.Client))     
     .ToList(); 
関連する問題