1

エンティティを熱心にロードし、別のコンテキストで再アタッチした後、非常に深刻なパフォーマンスの問題が発生しています。

以下の例。会社が最初に取得されたとき、従業員は熱心にロードされます。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();
}

従業員リストを切り離すにはどうすればよいですか?

編集:ロードされた従業員に変更はありません(新しい追加を除く)

4

1 に答える 1