1

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

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

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

任何人都知道为什么这不起作用以及我是否必须摆弄原始值来克服它?
我正在使用 EF 5.0 和 DBContext-API。

4

1 回答 1

2

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

context.Configuration.ValidateOnSaveEnabled = false;
于 2012-09-07T10:08:11.443 回答