Если DataItem
имеет поля, которые EF будет предварительно проверять (например, поля, не допускающие значения NULL), нам придется отключить эту проверку для этого контекста:
DataItem itemToUpdate = new DataItem { Id = id, Itemstatus = newStatus };
dataEntity.Entry(itemToUpdate).Property(x => x.Itemstatus).IsModified = true;
dataEntity.Configuration.ValidateOnSaveEnabled = false;
dataEntity.SaveChanges();
//dataEntity.Configuration.ValidateOnSaveEnabled = true;
В противном случае мы можем попытаться выполнить предварительную проверку и по-прежнему обновлять только один столбец:
DataItem itemToUpdate = new DataItem
{
Id = id,
Itemstatus = newStatus,
NonNullableColumn = "this value is disregarded - the db original will remain"
};
dataEntity.Entry(itemToUpdate).Property(x => x.Itemstatus).IsModified = true;
dataEntity.SaveChanges();
Предполагая, dataEntity
является System.Data.Entity.DbContext
Вы можете проверить сгенерированный запрос, добавив его к DbContext
:
/*dataEntity.*/Database.Log = m => System.Diagnostics.Debug.Write(m);