避免更新非可空字段

时间:2012-09-07 09:32:31

标签: entity-framework .net-4.5 entity-framework-5

从分离的实体更新行时,我试图避免使用以下内容更新未更改的字段:

DbEntityEntry<Type> entry = context.Entry(entity);
entry.Property(p => p.Property).IsModified = false;

这适用于可空字段,但是当它是一个不可为空的字段时,EF会抛出一个验证异常,说明该字段是必需的。

任何人都有任何见解为什么这不起作用,如果我必须摆弄原始价值来克服它? 我正在使用EF 5.0和DBContext-API。

1 个答案:

答案 0 :(得分:2)

原因是EF内部的验证逻辑。验证总是在整个实体上触发 - 它不尊重修改。解决方案是在EF中禁用实体验证逻辑:

context.Configuration.ValidateOnSaveEnabled = false;