エンティティを熱心にロードし、別のコンテキストで再アタッチした後、非常に深刻なパフォーマンスの問題が発生しています。
以下の例。会社が最初に取得されたとき、従業員は熱心にロードされます。1000人規模の従業員がいます。
次に、Company を 2 番目のコンテキストにアタッチするのに数秒かかります。
Company company;
using(var context = new MyEntities())
{
company = context
.Companies
.Include(x => x.Employees)
.Single(x => x.CompanyId = someCompanyId);
}
// Stuff happens here
var newEmployee = CreateNewEmployee();
using(var context = new MyEntities())
{
context.Configuration.AutoDetectChangesEnabled = false;
context.Companies.Attach(company); // <<-- Extremely slow
company.Employees.Add(newEmployee);
context.SaveChanges();
}
従業員リストを切り離すにはどうすればよいですか?
編集:ロードされた従業員に変更はありません(新しい追加を除く)