2012-03-01 16 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

PersonビューモデルからPersonエンティティにマッピングするだけです。この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(); 
    } 
} 
関連する問題