我有一些像下面的代碼。這可行,但我認爲它不夠清楚,需要我編寫冗長的代碼(手動分配每個屬性)。如何在EF中正確更新模型實體實例?
// POST: /TableA/Edit
[HttpPost]
public ActionResult Edit(TableA formdata)
{
TableA temp = myDB.TableA.First(a=>a.Id == formdata.Id);
//A foreign key model in another TableB
var tbb = myDB.TableB.First(a => a.Id == formdata.TableB.Id);
temp.TableB = tbb;
//fields in this table
temp.field1= formdata.field1;
temp.field2= formdata.field2;
temp.field3= formdata.field3;
myDB.SaveChanges();
return RedirectToAction("Index");
}
我能有類似的一些代碼,對象初始化:
TableA temp = myDB.TableA.First(a=>a.Id == formdata.Id)
{
TableB = myDB.TableB.First(a => a.Id == formdata.TableB.Id),
field1= formdata.field1,
field2= formdata.field2,
field3= formdata.field3,
}
myDB.SaveChanges();
return RedirectToAction("Index");
什麼是你想怎麼辦? – hunter 2011-04-18 12:41:00
我認爲第一個解決方案很難看。我可以有一些更有意義的更新模型的方法嗎? – hbrls 2011-04-18 12:43:10
第二個解決方案沒有任何意義。當你不調用構造函數時,你不能使用對象初始值設定項。第一個解決方案不是很難看...... – hunter 2011-04-18 12:48:47