从分离的实体更新行时,我试图避免使用以下内容更新未更改的字段:
DbEntityEntry<Type> entry = context.Entry(entity);
entry.Property(p => p.Property).IsModified = false;
这适用于可空字段,但是当它是一个不可为空的字段时,EF会抛出一个验证异常,说明该字段是必需的。
任何人都有任何见解为什么这不起作用,如果我必须摆弄原始价值来克服它? 我正在使用EF 5.0和DBContext-API。
答案 0 :(得分:2)
原因是EF内部的验证逻辑。验证总是在整个实体上触发 - 它不尊重修改。解决方案是在EF中禁用实体验证逻辑:
context.Configuration.ValidateOnSaveEnabled = false;