IValidatableObject is useless for EF navigation properties?
IValidatableObject.Validate only gets called when the implementing entities DbEntityEntry.State differs from "Unchanged". And just changing a navigation property won't change the state and so the validation will never occur. Why Microsoft always releases half-baked beta things? I cannot even detect the navigation property change by hand: var changes = context.ChangeTracker.Entries() .Where(e => e.State != EntityState.Unchanged) .ToArray(); Returns an empty array. There are a few interesting points here. EntityFramework tracks changes to navigation properties independently on the changes to