Присоединение к обновлению Entity Framework [дубликат]
На этот вопрос уже есть ответ:
Как я могу редактировать или добавлять в определенное поле, не вытягивая весь объект 2 ответаЯ пытаюсь обновить таблицу, используя EF 5.x, используя attach. в этой таблице есть другие обязательные поля, но это уже существующая строка. поэтому я пытаюсь обновить без какой-либо выборки. ID пользователя - это первичный ключ таблицы. я пытаюсь обновить статус. но он выдает EntityValidationErrors о том, что требуется пароль, который является другим обязательным полем, но не первичным ключом. так как это обновление существующей строки, зачем вам нужно указывать обязательные поля для обновления?
var webUser = new WebUser() { UserId = webUserId, OnlineStatus = (sbyte)status };
using (var dbxupdate = new xEntities())
{
try
{
dbxupdate.WebUsers.Attach(webUser);
dbxupdate.Entry(webUser).State = EntityState.Modified;
dbxupdate.Entry(webUser).Property(x => x.OnlineStatus).IsModified = true;
dbxupdate.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}
}