Entity Framework 5 Обновление записи

Я изучал различные методы редактирования / обновления записи в Entity Framework 5 в среде ASP.NET MVC3, но пока ни один из них не помечает все нужные мне поля. Я объясню почему.

Я нашел три метода, которым я упомяну плюсы и минусы:

Способ 1 - загрузить исходную запись, обновить каждое свойство

var original = db.Users.Find(updatedUser.UserId);

if (original != null)
{
    original.BusinessEntityId = updatedUser.BusinessEntityId;
    original.Email = updatedUser.Email;
    original.EmployeeId = updatedUser.EmployeeId;
    original.Forename = updatedUser.Forename;
    original.Surname = updatedUser.Surname;
    original.Telephone = updatedUser.Telephone;
    original.Title = updatedUser.Title;
    original.Fax = updatedUser.Fax;
    original.ASPNetUserId = updatedUser.ASPNetUserId;
    db.SaveChanges();
}    

Pros

Можно указать, какие свойства изменитьПредставления не должны содержать каждое свойство

Cons

2 х запросов к базе данных, чтобы загрузить оригинал, а затем обновить его

Способ 2 - загрузить исходную запись, установить измененные значения

var original = db.Users.Find(updatedUser.UserId);

if (original != null)
{
    db.Entry(original).CurrentValues.SetValues(updatedUser);
    db.SaveChanges();
}

Pros

Только измененные свойства отправляются в базу данных

Cons

Представления должны содержать каждое свойство2 х запросов к базе данных, чтобы загрузить оригинал, а затем обновить его

Способ 3 - Присоединить обновленную запись и установить состояние EntityState.Modified

db.Users.Attach(updatedUser);
db.Entry(updatedUser).State = EntityState.Modified;
db.SaveChanges();

Pros

1 х запрос к базе данных для обновления

Cons

Не могу указать какие свойства изменитьПредставления должны содержать каждое свойство

Вопрос

Мой вопрос к вам, ребята; Есть ли чистый способ, которым я могу достичь этого набора целей?

Можно указать, какие свойства изменитьПредставления не должны содержать каждое свойство (например, пароль!)1 х запрос к базе данных для обновления

Я понимаю, что это довольно незначительная вещь, на которую можно указать, но я могу упустить простое решение этого вопроса. Если не метод один будет преобладать ;-)

Ответы на вопрос(7)

Ваш ответ на вопрос