我有一些像下面的代码。这可行,但我认为它不够清楚,需要我编写冗长的代码(手动分配每个属性)。如何在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