/// <summary> /// Verify that all update operations in the specified <see cref="EntityChangeSet"/> are permitted. /// </summary> /// <param name="changeSet">The <see cref="EntityChangeSet"/> to check.</param> internal static void CheckForInvalidUpdates(EntityChangeSet changeSet) { AssociationUpdateChecker associationChecker = new AssociationUpdateChecker(); foreach (Entity entity in changeSet) { if (entity.EntityState == EntityState.Modified) { foreach (MetaMember member in entity.ModifiedProperties) { if (member.IsKeyMember) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resource.Entity_KeyMembersCannotBeChanged, member.Name, entity.GetType().Name)); } } } // search associated entities for any invalid changes associationChecker.Visit(entity); } }
/// <summary> /// Verify that all update operations in the specified <see cref="EntityChangeSet"/> are permitted. /// </summary> /// <param name="changeSet">The <see cref="EntityChangeSet"/> to check.</param> internal static void CheckForInvalidUpdates(EntityChangeSet changeSet) { AssociationUpdateChecker associationChecker = new AssociationUpdateChecker(); foreach (Entity entity in changeSet) { if (entity.EntityState == EntityState.Modified) { foreach (PropertyInfo modifiedProperty in entity.ModifiedProperties) { if (modifiedProperty.GetCustomAttributes(typeof(KeyAttribute), false).Any()) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, Resource.Entity_KeyMembersCannotBeChanged, modifiedProperty.Name, entity.GetType().Name)); } } } // search associated entities for any invalid changes associationChecker.Visit(entity); } }