EF4 Code First: как обновить только определенные поля - PullRequest
7 голосов
/ 21 марта 2011

Как мне обновить только определенные поля на объекте?

У меня есть объект User, подобный так:

public class User
{
    public string UserId { get; set; }
    public string PasswordHash { get; set; }
    public bool IsDisabled { get; set; }
    public DateTime AccessExpiryDate { get; set; }
    public bool MustChangePassword { get; set; }
    public DateTime DateCreated { get; set; }
    public DateTime LastActivity { get; set; }
}

Так что, если, например, я хочу обновить объект пользователя,но не хотите менять пароль пользователя, как мне это сделать?

В настоящее время я использую следующий код для обновления сущностей:

using (var _cnt = new STQContext())
{
   _cnt.Entry<Item>(item).State = System.Data.EntityState.Modified;
   _cnt.SaveChanges();
   return;
}

1 Ответ

4 голосов
/ 21 марта 2011

Попробуйте это:

using (var _cnt = new STQContext())
{
   _cnt.Users.Attach(user);
   _cnt.Entry<User>(user).Property(u => u.PasswordHash).IsModified = true;
   _cnt.SaveChanges();
}
...