2012-03-01 5 views
0

아래는 현재 수행중인 작업의 간단한 예입니다. - 50 개의 속성이있는 큰 엔티티가 있고 그 중 적은 수의 행으로 하나의 값을 업데이트하려는 경우 효율적으로 특수하게 수행 할 수있는 다른 방법이 있습니까? 암호??MVC 3 엔티티를 효율적으로 업데이트합니다.

[HttpPost] 
public ActionResult Person(VMPerson vmperson) 
{ 
Person p = new Person() 
p.name = vmperson.name; 
p.address = NULL; 
TryUpdateModel(p); 
db.Person.Save(); 
} 
+1

효율성 수준을 찾고 있다면 왜 EF를 사용하고 있습니까? –

+0

지난 몇 프로젝트에서 Nhibernate를 사용했습니다 ... 훨씬 더 ... – AnarchistGeek

+0

업데이트하거나 업데이트/생성하려고합니까? – veblock

답변

1

가장 효율적인 방법은 이러한 유형의 선택된 작업에 대해 EF를 제거하는 것입니다. 솔직히 말해, 50 개의 속성을 가진 엔티티가있는 경우 데이터 모델에 질문을하고 그 중 일부가 약간 분해 될 필요가 없는지 여부를 질문합니다.

즉, 업데이트 작업은 상당히 저렴하며 일괄 처리 할 수 ​​있습니다. 대량 업데이트를 수행하는 경우 일괄 처리 방법을 찾아서 수행하십시오.

0

사용자보기 모델에서 사용자 엔티티로 매핑하는 중일뿐입니다. 이 https://github.com/AutoMapper/AutoMapper에는 AutoMapper를 사용하십시오. 따라서 코드는 다음과 같을 수 있습니다 :

[HttpPost] 
public ActionResult Person(VMPerson vmperson) 
{ 
    try 
    { 
     if (ModelState.IsValid) 
     { 
      var newPerson = Mapper.Map<VMPerson, Person>(vmperson); 
      _database.Person.AddObject(newPerson); 
      _database.SaveChanges(); 
     } 
     return RedirectToAction("Index"); 
    } 
    catch 
    { 
     return View(); 
    } 
}