EntityFramework 7.0.0-rc1を使用したとき、私は次のように書いた:
context.MyEntity
.Include(e=>e.MySubEntities)
.Where(e=>e.MySubEntities.Contains(value))
.Where(e=>e.Status==1)
.ToList();
EFCore 1.0.0では、同じコードが例外をスローします。私は最初のWhere
ランがデータをロードしていないのWhere
を現時点でInclude
と仮定しInclude
。だから私は最初に関連するすべてのデータで私のコレクションをインスタンス化し、次にそれを照会する必要があります。以前のアプローチは、唯一のデータベースクエリがあったので最適化されたようでした(そうではありませんでしたか?)。どうすれば同じことができますか?
PS私はNpgsql.EntityFrameworkCore.PostgreSQL 1.0.0を使用しています
式ツリーで値を変換できないため、EFコアでContainsを使用することはできません。
次のように使ってください:
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();