다음과 같은 코드가 있습니다. 이 방법은 효과가 있지만 충분히 명확하지 않으며 (수동으로 각 속성을 할당하는) 긴 코드를 작성해야한다고 생각합니다.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");
}
내가 초기화 객체와 유사한 몇 가지 코드가 있습니다 : 당신은 TryUpdateModel
방법을 사용할 수 있습니다
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
첫 번째 해결책은 추악하다고 생각합니다. 모델을 업데이트하는 좀 더 의미있는 방법을 사용할 수 있습니까? – hbrls
두 번째 해결 방법은 이해가되지 않습니다. 생성자를 호출하지 않을 때는 객체 이니셜 라이저를 사용할 수 없습니다. 첫 번째 해결책은 못생긴 것이 아닙니다 ... – hunter