在急切地加载实体并在单独的上下文中重新附加它之后,我遇到了非常严重的性能问题。
下面的例子。当公司第一次被提取时,员工们急切地加载。有1000名员工。
然后在第二个上下文中附加公司需要几秒钟。
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();
}
我将如何分离员工名单?
编辑:加载的员工不会有任何变化(新增的除外)