我是新來的MVC,並試圖添加/編輯主細節形式的記錄。在插入記錄時,masterid和detailid都由oracle生成。因此,當我嘗試調用DBContext.SaveChanges()時,我得到的錯誤是外鍵被違反,並且沒有找到ID爲'0'的主行。ASP.net MVC - 主細節 - 外鍵總是爲零
下面是類的描述。
public class Master
{
public int MasterID { get; set; }
public string MasterTitle { get; set; }
public virtual IList<Detail> Details { get; set; }
}
public class Detail
{
public int DetailID { get; set; }
public int MasterID { get; set; }
public string DetailName { get; set; }
public virtual Master Master { get; set; }
}
控制器代碼
[HttpPost]
public ActionResult Create(MASTER masterrecord)
{
if (ModelState.IsValid)
{
db.MASTER.Add(masterrecord);
db.SaveChanges();
}
...
}
的主鍵(masterid)將獲得記錄被插入到數據庫後纔有意義的值。 context.SaveChanges()此時嘗試用'0'masterid保存客戶端記錄。我搜索了哪裏找不到任何有用的東西。
雖然只保存主表,所以我可以檢索masterid和我們與細節模型。但無法找到任何地方如何使用EF5 MVC ASP.NET 任何人可以指出我正確的方向提供一些工作示例? 謝謝 Siddhant
一個贊成和反對的名單做工精細用SQLEXPRESS – ZedBee
我使用的是Oracle。 PK是從序列生成的,我使用Before Row Insert Trigger加檢查條件,如果PK COLUMN(我的例子中的MASTERID)= 0 –