MVC 3 эффективно обновляет объект - PullRequest
0 голосов
/ 02 марта 2012

Ниже приведен краткий пример того, что я делаю в настоящее время. Есть ли другой способ сделать это эффективно, особенно если у вас большая сущность с 50 свойствами, и все, что вы хотите сделать, - обновить одно значение с меньшим количеством строк кода? *

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

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Наиболее эффективным способом было бы отказаться от EF для этих типов выбранных операций. Если честно, если у вас есть сущность с 50 свойствами, я поставлю под сомнение вашу модель данных, и, возможно, некоторые из них не нужно будет немного разбивать.

Тем не менее, операции обновления довольно дешевы и могут быть пакетными. Если вы делаете массовые обновления, выясните, как их пакетировать, и сделайте это.

0 голосов
/ 02 марта 2012

Вы просто сопоставляете свою модель представления Person с вашей сущностью Person. Используйте AutoMapper для этого https://github.com/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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...