public void Can_remove_keys() { var entityType = new EntityType(typeof(Customer), new Model()); var idProperty = entityType.GetOrAddProperty(Customer.IdProperty); var nameProperty = entityType.GetOrAddProperty(Customer.NameProperty); Assert.Equal( Strings.KeyNotFound("{'" + idProperty.Name + "', '" + nameProperty.Name + "'}", typeof(Customer).FullName), Assert.Throws<ModelItemNotFoundException>(() => entityType.GetKey(new[] { idProperty, nameProperty })).Message); Assert.Null(entityType.RemoveKey(new Key(new[] { idProperty }))); var key1 = entityType.GetOrSetPrimaryKey(new[] { idProperty, nameProperty }); var key2 = entityType.GetOrAddKey(idProperty); Assert.Equal(new[] { key2, key1 }, entityType.Keys.ToArray()); Assert.Same(key1, entityType.RemoveKey(key1)); Assert.Null(entityType.RemoveKey(key1)); Assert.Equal( Strings.KeyNotFound("{'" + idProperty.Name + "', '" + nameProperty.Name + "'}", typeof(Customer).FullName), Assert.Throws<ModelItemNotFoundException>(() => entityType.GetKey(new[] { idProperty, nameProperty })).Message); Assert.Equal(new[] { key2 }, entityType.Keys.ToArray()); Assert.Same(key2, entityType.RemoveKey(new Key(new[] { idProperty }))); Assert.Empty(entityType.Keys); }