1
私はその後、私は次の行を使用して、私のオブジェクトをロードし、次のコードEF遅延ロードは無効化され、まだEFロード全グラフ
を使用してEF 6.1の無効化遅延ロードを持っています。
T result = (T)context.Set<T>().Find(id);
ここで、Tはナビゲーションプロパティを持つオブジェクトです。このFind
メソッドは遅延ロードを無効にしているのでナビゲーションプロパティなしでオブジェクトを返すことを期待していますが、コードを実行して変数値をチェックすると、ナビゲーションプロパティもロードされています。誰でも問題が何であるか知っていますか?ここで
EDIT
ミニサンプルです
あるMyContext
public class MyContext : DbContext
{
public MyContext() : base("DefaultConnection")
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}
public DbSet<Lesson> Lessons { get; set; }
public DbSet<Part> Parts { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}
モデル
public class Lesson
{
public int Id { get; set; }
public Part Part { get; set; }
}
public class Part
{
public int Id { get; set; }
public string Name { get; set; }
}
クライアントコード
using (MyContext c = new EFTest.MyContext())
{
Lesson d = new EFTest.Lesson();
d.Part = new EFTest.Part() { Name = "a" };
Lessson insert = c.Lessons.Add(d);
c.SaveChanges();
Lesson returned = c.Lessons.Find(insert.Id);
}
EF:CoreまたはNot Core?バージョン? –
Entity Framework 6.1 – Sisyphus
奇妙な音、[mcve]、および/またはgenered SQLを表示します。 –