2016-07-05 21 views
3

との積極的なロード私はEntityFramework 7.0.0-RC1を使用する場合、私はこのような何かを書いた:EFCoreでEntity Frameworkのコア1.0.0:WHERE句

context.MyEntity 
.Include(e=>e.MySubEntities) 
.Where(e=>e.MySubEntities.Contains(value)) 
.Where(e=>e.Status==1) 
.ToList(); 

は同じコードが例外をスローします1.0.0。最初のWhere実行時にデータがロードされていない瞬間にIncludeと思われます。だから私は最初に関連するすべてのデータで私のコレクションをインスタンス化し、次にそれを照会する必要があります。 唯一のデータベースクエリがあったので、これまでのアプローチは最適化されているようでした(そうではありませんでしたか?)。どうすれば同じことができますか?

P.S.私はあなたが使用することはできません

+0

EFCorce 1 RTMを使用していますか? – Nils

+0

@Nilsはい。 「Microsoft.EntityFrameworkCore」:「1.0.0」、「Microsoft.EntityFrameworkCore.Tools」:{ 「バージョン」:「1.0.0プレビュー2最終」、 「タイプ」:「ビルド」 }、「 – Slip

+0

」さて、それは正常に動作するはずです - 公式の文書によると:https://docs.efproject.net/en/latest/querying/related-data.html – Nils

答えて

2

Npgsql.EntityFrameworkCore.PostgreSQL 1.0.0を使用している値は、式ツリーに変換できないことはできないので、そのようEFコアに含まれています:

ちょうどそのようにそれを使用します。

var tmp = myConext.MyEntity 
      .Include(e=>e.MySubEntities) 
      .Where(x => x.MySubEntities.Select(id=>id.MySubEntitiesId).Contains(value.MySubEntitiesId)) 
      .Where(e=>e.Status==1) 
      .ToList(); 
関連する問題