我有兩個實體:Invoice和InvoiceDetail。實體框架:更新相關實體
發票有一個InvoiceDetails成員。
當我創建一個obcjet時,它按預期工作。
框架在數據庫中插入Invoice和InvoiceDetail行。
$.ajax({
url: "/Invoices/Index",
data: JSON.stringify({
InvoiceDetails: [{
Description: "1"
}, {
Description: "2"
}]
}),
contentType: "application/json",
type: "POST"
});
[ActionName("Index")]
[HttpPost]
public JsonResult Post(Invoice invoice)
{
db.Invoices.AddObject(invoice);
db.SaveChanges();
...
我還想更新Invoice和相關的InvoiceDetails。
$.ajax({
url: "/Invoices/Index/1",
data: JSON.stringify({
Id: 1,
InvoiceDetails: [{
Id: 1,
Description: "1*"
}, {
Id: 2,
Description: "2*"
}]
}),
contentType: "application/json",
type: "PUT"
});
[ActionName("Index")]
[HttpPut]
public JsonResult Put(Invoice invoice)
{
db.Invoices.Attach(invoice);
db.ObjectStateManager.ChangeObjectState(invoice, EntityState.Modified);
db.SaveChanges();
...
但框架只更新發票。
如何更新相關實體?
我的模型看起來像這樣
編輯:解 http://michele.berto.li/update-of-an-object-and-related-records-with-backbonejs-and-net-mvc
更新的鏈接 http://michele.berto.li/update-of-an-object-and-related-records-with-backbone-js-and-net-mvc/
我有一個控制器'HttpPost'操作,用於處理提交複雜表單的操作,該表單由一個實體及其導航屬性組成,這些屬性可以是由於刪除,某些新項目,某些修改而丟失的某些項目的集合,以及與單個對象導航相同。可以爲零的屬性(FK屬性可以爲空),修改爲新實體,修改現有或許多其他選項。有關如何管理EF中相關實體的統一方法?由於缺乏明確統一的方式來執行此類操作,整個事情開始變得混亂。 – Shimmy 2015-04-19 04:23:20
關於2015年這個問題的任何消息?任何方式輕鬆更新整個圖形,包括刪除相關實體? – Shimmy 2015-04-19 22:18:42