以下は私が現在やっていることの短い例です - 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();
}
以下は私が現在やっていることの短い例です - 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();
}
最も効率的な方法は、これらのタイプの選択された操作ではEFを削除することです。正直言って、あなたが50のプロパティを持つエンティティを持っているなら、私はあなたのデータモデルに疑問を呈します。
つまり、更新操作はかなり安く、バッチ処理が可能です。大量の更新を行っている場合は、それらを一括して実行する方法を理解してください。
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();
}
}
このようなレベルで効率を探しているのなら、なぜEFを使用していますか? –
私は仕事をしている最後のいくつかのプロジェクトでNhibernateを使用しました...もっともっと良い.. – AnarchistGeek
あなたは更新や更新/作成を試みていますか? – veblock