我在保存對數據庫的更改時遇到問題。SaveChanges()實體框架問題4.1
我更新了模型中的在我的控制器,但是當我保存的SaveChanges使用()我最終在數據庫B.
重複的項目中的UpdateModel(後)的變化被稱爲我檢查了Bs屬性,這是因爲我期望但是在SaveChanges()被調用後,如果我檢查Bs屬性,我會看到Id完全不同(新的Id和新條目)。
我的班級與此類似:
public class A
{
[HiddenInput(DisplayValue = false)]
public int AId { get; set; }
public string Name { get; set; }
public virtual ICollection<B> Bs{ get; set; }
}
public class B
{
[HiddenInput(DisplayValue = false)]
public int BId { get; set; }
public string Name { get; set; }
public virtual ICollection<A> As{ get; set; }
}
我的控制器是這樣的:
[HttpPost]
public ActionResult Edit(A theA)
{
try
{
db.Entry(theA).State = EntityState.Modified;
foreach (var item in theA.Bs)
{
db.Entry(item).State = EntityState.Modified;
}
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
難道我做錯了什麼?
在此先感謝
您的控制器方法對於查看從DB中檢索對象的位置很重要,可以修改它們並調用SaveChanges。 – Slauma 2011-04-17 12:53:40