private void CheckKeyNotInUse(Key key) { var foreignKey = Model?.GetReferencingForeignKeys(key).FirstOrDefault(); if (foreignKey != null) { throw new InvalidOperationException(Strings.KeyInUse(Property.Format(key.Properties), Name, foreignKey.DeclaringEntityType.Name)); } }
public void Can_get_referencing_foreign_keys() { var model = new Model(); var entityType1 = new EntityType(typeof(Customer)); var entityType2 = new EntityType(typeof(Order)); var keyProperty = new Property("Id", typeof(Customer)) { EntityType = entityType1 }; var fkProperty = new Property("CustomerId", typeof(Order)) { EntityType = entityType2 }; var foreignKey = entityType2.AddForeignKey(new Key(new[] { keyProperty }), fkProperty); model.AddEntityType(entityType1); model.AddEntityType(entityType2); var referencingForeignKeys = model.GetReferencingForeignKeys(entityType1); Assert.Same(foreignKey, referencingForeignKeys.Single()); Assert.Same(foreignKey, entityType1.GetReferencingForeignKeys().Single()); }
public virtual IEnumerable <ForeignKey> GetReferencingForeignKeys() => Model.GetReferencingForeignKeys(this);