我正在使用 DB first 方法,EF 4.1 和 DbContext POCO 代码生成。
我的数据库有一个多对多的关系,如下所示:
员工
员工ID
员工姓名
帐户
帐户ID
帐户名称
员工账户
员工ID
帐户ID
当我尝试更新员工并将他们的帐户分配更改为预先存在的帐户时会出现问题,所以我基本上这样做如下:
using(context)
{
var query = from e in context.Employees.Include(f => f.Accounts)
where e.EmployeeId == employeeId
select;
Employee emp = query.FirstOrDefault()
}
emp.EmployeeName = "Test";
emp.Accounts.Clear();
Account act = MethodThatLooksUpAccountByName("SomeAccountName");
emp.Accounts.Add(act);
using(context)
{
context.Accounts.Attach(act);
emp.State = EntityState.Modified;
context.Employees.Attach(emp);
context.SaveChanges();
}
正在生成的 SQL 正在对 [Employee] 表执行更新,对 [EmployeeAccount] 根本没有任何内容,没有删除没有插入。