仅当实现实体DbEntityEntry.State与"Unchanged"不同时,才会调用IValidatableObject.Validate.只是更改导航属性不会改变状态,因此永远不会发生验证.
为什么微软总是发布半生不熟的测试版?
我甚至无法手动检测导航属性的变化:
var changes = context.ChangeTracker.Entries()
.Where(e => e.State != EntityState.Unchanged)
.ToArray();
Run Code Online (Sandbox Code Playgroud)
返回一个空数组.