经过几天的学习EF了解(有点......)它是如何工作的,我终于意识到我可能有一个大问题.
想象一下,我有两个实体:Pais和UF.他们之间的关系是Pais (0..1) ... (*) UF.截图:http://i.imgur.com/rSOFU.jpg.
说,考虑到我有一个控制器被调用UFController,它有动作Edit和Create,这很好.我的视图使用EditorFor帮助器(或类似的)作为输入,因此当我提交表单时,控制器将接收一个UF填充了所有数据的对象(自动),并引用几乎为空的数据 Pais.我的视图代码(部分代码):
@* UF attributes *@
@Html.EditorFor(m => m.Sigla)
@Html.EditorFor(m => m.Descricao)
@Html.EditorFor(m => m.CodigoIBGE)
@Html.EditorFor(m => m.CodigoGIA)
@* Pais primary key ("ID") *@
@Html.EditorFor(m => m.Pais.Codigo) // Pais id
Run Code Online (Sandbox Code Playgroud)
控制器Edit动作代码:
[HttpPost]
public ActionResult Edit(UF uf)
{
try
{
if (ModelState.IsValid)
{
db.UFs.Attach(uf);
db.ObjectStateManager.ChangeObjectState(uf, EntityState.Modified);
db.SaveChanges();
return this.ClosePage(); // An …Run Code Online (Sandbox Code Playgroud)