コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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());
        }
コード例 #3
0
ファイル: ModelTest.cs プロジェクト: Nyaoso/EntityFramework
        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());
        }
コード例 #4
0
 public virtual IEnumerable <ForeignKey> GetReferencingForeignKeys()
 => Model.GetReferencingForeignKeys(this);