2016-06-26 6 views
0

sonnsを条件に含めるにはコンテキストが必要ですが、削除しない(論理的に削除する)行が必要です。エンティティフレームワークには条件による項目のみが含まれます

私は、インクルードに条件を追加できないことを理解しました。コンテキストをフィルタリングしたいが、うまくいかない。

var aa = ctx.aa 
     .Include(t => t.vari) 
     .ToList() 
     .FirstOrDefault(); 

ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList(); 

ありがとうございます!

+0

'ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList();'あなたはIDのためにbiを見逃しました。それ以外の場合は、あなたが持っているエラーを言及できますか? – SilentCoder

+0

あなたは正しいです! (間違いにもかかわらず質問の考えが明白だったと思う....) –

+0

お会いしましょう。その後、私のコメントに投票することができます。 ;) – SilentCoder

答えて

1

ToListメソッド()をドロップする方が良いだろう。

免責事項:私はプロジェクトクエリIncludeOptimized機能が含まれてフィルタリングすると同時に、クエリのパフォーマンスを最適化することができますEntity Framework Plus

の持ち主だ(サポートEF5、EF6)

var aa = ctx.aa 
      .IncludeOptimized(t => t.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1)) 
      .FirstOrDefault(); 

ドキュメント:EF+ Query IncludeOptimized

+0

美しく見えます!私はEF Plusを使用することはできません:( –

+0

サードパーティライブラリを使用できない理由はありますか?コードはフリーでオープンソースなので、GitHubからソースを取得するか、私に連絡して送信しますあなただけのEF +クエリIncludeOptimizedソースコードを持つzipファイル –

+0

ありがとう 'あなたはとても親切です私は私の上司に尋ねる –

0

これは、最もパフォーマンスの高いクエリではありません。 codelahiru & & hbulensが指摘したように、あなたはIDのためにBIを逃した

var aa = ctx.aa.Include(t => t.vari).ToList().FirstOrDefault(); 

// You missed the variable before ID 
ctx.vari.Where(bi => bi.ID == 10 && bi.Deleted == 1).ToList(); 
+0

私は何をしましたか... –

+0

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。私たちはここで知識のためのリソースとなるよう努力しています。 – abarisone

+0

@ bararisone通常、私はあなたに同意しますが、問題の範囲は非常に小さく、説明の必要性はほとんどありません(それは単にタイプミスです)。 – hbulens

関連する問題