public void Cannot_remove_entity_type_when_it_has_derived_types() { var model = new Model(); var customerType = model.GetOrAddEntityType(typeof(Customer)); var specialCustomerType = model.GetOrAddEntityType(typeof(SpecialCustomer)); specialCustomerType.HasBaseType(customerType); Assert.Equal( CoreStrings.EntityTypeInUseByDerived(typeof(Customer).Name, typeof(SpecialCustomer).Name), Assert.Throws <InvalidOperationException>(() => model.RemoveEntityType(customerType.Name)).Message); }
public void Cannot_remove_entity_type_when_it_has_derived_types() { var model = new Model(); var customerType = model.GetOrAddEntityType(typeof(Customer)); var specialCustomerType = model.GetOrAddEntityType(typeof(SpecialCustomer)); specialCustomerType.BaseType = customerType; Assert.Equal( CoreStrings.EntityTypeInUseByDerived(typeof(Customer).Name, typeof(SpecialCustomer).Name), Assert.Throws<InvalidOperationException>(() => model.RemoveEntityType(customerType.Name)).Message); }
public void Can_add_and_remove_entity_by_name() { var model = new Model(); Assert.Null(model.FindEntityType(typeof(Customer).FullName)); Assert.Null(model.RemoveEntityType(typeof(Customer).FullName)); var entityType = model.AddEntityType(typeof(Customer).FullName); Assert.Null(entityType.ClrType); Assert.Equal(typeof(Customer).FullName, entityType.Name); Assert.NotNull(model.FindEntityType(typeof(Customer).FullName)); Assert.Same(model, entityType.Model); Assert.NotNull(entityType.Builder); Assert.Same(entityType, model.GetOrAddEntityType(typeof(Customer).FullName)); Assert.Equal(new[] { entityType }, model.GetEntityTypes().ToArray()); Assert.Same(entityType, model.RemoveEntityType(entityType.Name)); Assert.Null(model.RemoveEntityType(entityType.Name)); Assert.Null(model.FindEntityType(typeof(Customer).FullName)); Assert.Null(entityType.Builder); }
public void Cannot_remove_entity_type_when_referenced_by_foreign_key() { var model = new Model(); var customerType = model.GetOrAddEntityType(typeof(Customer)); var idProperty = customerType.GetOrAddProperty(Customer.IdProperty); var customerKey = customerType.GetOrAddKey(idProperty); var orderType = model.GetOrAddEntityType(typeof(Order)); var customerFk = orderType.GetOrAddProperty(Order.CustomerIdProperty); orderType.AddForeignKey(customerFk, customerKey, customerType); Assert.Equal( CoreStrings.EntityTypeInUseByForeignKey( typeof(Customer).Name, "{'" + Order.CustomerIdProperty.Name + "'}", typeof(Order).Name), Assert.Throws <InvalidOperationException>(() => model.RemoveEntityType(customerType.Name)).Message); }
public void Can_get_entity_by_name() { var model = new Model(); var entityType = model.GetOrAddEntityType(typeof(Customer).FullName); Assert.Same(entityType, model.FindEntityType(typeof(Customer).FullName)); Assert.Same(entityType, model.FindEntityType(typeof(Customer).FullName)); Assert.Null(model.FindEntityType(typeof(string))); }
public void Cannot_remove_entity_type_when_referenced_by_foreign_key() { var model = new Model(); var customerType = model.GetOrAddEntityType(typeof(Customer)); var idProperty = customerType.GetOrAddProperty(Customer.IdProperty); var customerKey = customerType.GetOrAddKey(idProperty); var orderType = model.GetOrAddEntityType(typeof(Order)); var customerFk = orderType.GetOrAddProperty(Order.CustomerIdProperty); orderType.AddForeignKey(customerFk, customerKey, customerType); Assert.Equal( CoreStrings.EntityTypeInUseByForeignKey( typeof(Customer).Name, "{'" + Order.CustomerIdProperty.Name + "'}", typeof(Order).Name), Assert.Throws<InvalidOperationException>(() => model.RemoveEntityType(customerType.Name)).Message); }
public void Can_add_and_remove_entity_by_type() { var model = new Model(); Assert.Null(model.FindEntityType(typeof(Customer))); Assert.Null(model.RemoveEntityType(typeof(Customer))); var entityType = model.AddEntityType(typeof(Customer)); Assert.Equal(typeof(Customer), entityType.ClrType); Assert.NotNull(model.FindEntityType(typeof(Customer))); Assert.Same(model, entityType.Model); Assert.Same(entityType, model.GetOrAddEntityType(typeof(Customer))); Assert.Equal(new[] { entityType }, model.GetEntityTypes().ToArray()); Assert.Same(entityType, model.RemoveEntityType(entityType.ClrType)); Assert.Null(model.RemoveEntityType(entityType.ClrType)); Assert.Null(model.FindEntityType(typeof(Customer))); }