Atualize uma única propriedade de um registro no Entity Framework Code First
Como atualizar uma única propriedade de um registro sem recuperá-lo primeiro? Estou perguntando no contexto deEF Código primeiro 4.1
Diz que eu tenho uma classe User, mapeando para a tabela Users in Database:
class User
{
public int Id {get;set;}
[Required]
public string Name {get;set;}
public DateTime LastActivity {get;set;}
...
}
Agora eu quero atualizar o LastActivity de um usuário. Eu tenho identificação de usuário. Posso fazer isso facilmente consultando o registro do usuário, defina um novo valor como LastActivity e chame SaveChanges (). Mas isso resultaria em uma consulta redundante.
Eu trabalho usando o método Attach. Mas, como o EF lança uma exceção de validação em Name, se for nulo, defino Name como uma sequência aleatória (não será atualizada novamente para o banco de dados). Mas isso não parece uma solução elegante:
using (var entities = new MyEntities())
{
User u = new User {Id = id, Name="this wont be updated" };
entities.Users.Attach(u);
u.LastActivity = DateTime.Now;
entities.SaveChanges();
}
Eu ficaria muito satisfeito se alguém pudesse me fornecer uma solução melhor. E perdoe-me por qualquer erro, pois esta é a primeira vez que faço uma pergunta no SO.