Как я могу обновить одно свойство записи, не извлекая ее сначала?Я спрашиваю в контексте EF Code First 4.1
Говорит, что у меня есть класс User, сопоставление с таблицей Users в базе данных:
class User
{
public int Id {get;set;}
[Required]
public string Name {get;set;}
public DateTime LastActivity {get;set;}
...
}
Теперь я хочуобновить LastActivity пользователя.У меня есть идентификатор пользователя.Я легко могу сделать это, запросив запись пользователя, установить новое значение LastActivity, а затем вызвать SaveChanges ().Но это приведет к избыточному запросу.
Я работаю, используя метод Attach.Но поскольку EF генерирует исключительную ситуацию проверки на Name, если оно равно null, я устанавливаю Name в произвольную строку (не будет обновляться обратно в DB).Но это не кажется элегантным решением:
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();
}
Я был бы очень признателен, если бы кто-то мог предоставить мне лучшее решение.И простите меня за любую ошибку, так как я впервые задаю вопрос по SO.