DbContext / DbSet / DbQuery を使用して、ナビゲーション プロパティを条件付きで積極的に読み込むことは可能ですか。以下のクエリは、特定の役割を持つ関係者を返します。
私が必要とするのは、一致するロールのみを追加でロードすることです。
最初の試み
var peopleWithRole = (from p in Party
from r in p.Roles
where r.RoleTypeId == 1
select p).Include(_ => _.Roles);
これにより、すべてのロールがロードされます。これを見れば、その理由は明らかです。
私はいくつかのことを試しました。それを行うためにオブジェクトクエリをキャストして作成する必要がある場合、それは問題ありませんが、方法がわかりません。
二度目の試み
var objectContext = ((IObjectContextAdapter)this).ObjectContext;
var set = objectContext.CreateObjectSet<Party>();
var result = (from p in set.Where("it.Roles.RoleTypeId == 1")
select p)
;
result.Dump();
イテレータはこのように使用できませんか?
何か案は?