Entity framework 实体框架不处理对复合键的更改
我有一个多对多关系的课程,比如:Entity framework 实体框架不处理对复合键的更改,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,我有一个多对多关系的课程,比如: public partial class AdminBoundaryStaff { [Key, Column(Order=0)] public int idAdminBoundary { get; set; } [Key, Column(Order = 1)] public int idAdminStaff { get; set; } [Key, Column(Order = 2)] public int idA
public partial class AdminBoundaryStaff
{
[Key, Column(Order=0)]
public int idAdminBoundary { get; set; }
[Key, Column(Order = 1)]
public int idAdminStaff { get; set; }
[Key, Column(Order = 2)]
public int idAdminStaffType { get; set; }
public virtual AdminBoundary AdminBoundary { get; set; }
public virtual AdminStaff AdminStaff { get; set; }
public virtual AdminStaffType AdminStaffType { get; set; }
如果我更改idAdminStaff的值并将表单发回控制器,EF似乎看不到有任何更改,甚至不尝试SQL更新(使用探查器查看)
你永远不应该改变PK值。如果你需要更改它,它不是PK。它们实际上是外键。关键属性可能不属于这里。如果我删除这些,问题仍然存在。我通过向表中添加一个单独的主键来解决这个问题。啊。如果您的表上根本没有主键,EF将被混淆。和我们其他人一起!
[HttpPost]
public ActionResult Edit( AdminBoundaryStaff adminboundarystaff)
{
if (ModelState.IsValid)
{
db.Entry(adminboundarystaff).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}}