我有一个我知道该数据库中已经存在的实体,但是上下文当前未对其进行跟踪。我使用DbSet上的Attach方法强制上下文跟踪实体。然后设置'IsModified' = true
必要的属性。但是EF
尝试更新db表中的每个属性,SaveChanges()
方法抛出异常,某些属性是必需属性,不能为空。虽然我仅将一个属性标记为已修改。我正在使用EF v.6.0。
这是我的代码:
public bool ChangeState(int id, bool state)
{
try
{
var obj = new T {ID = id, Hidden = state};
_context.Set<T>().Attach(obj);
_context.Entry(obj).Property(x => x.Hidden).IsModified = true;
return _context.SaveChanges() == 1;
}
catch (DbEntityValidationException dbEx)
{
...
}
}
}
你有什么主意吗
好的,要对此问题有一个答案,我将在这里重复@Stephen Muecke答案:
您可以尝试,_context.Configuration.ValidateOnSaveEnabled = false;
请不要投票给我,这是@Stephen Muecke的功劳。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句