public void Cannot_ignore_same_or_higher_source_entity_type_using_entity_type_name() { var model = new Model(); var modelBuilder = new InternalModelBuilder(model, null); Assert.True(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.Convention)); Assert.NotNull(modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.Convention)); Assert.NotNull(modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.DataAnnotation)); Assert.False(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.Convention)); Assert.NotNull(model.TryGetEntityType(typeof(Customer).FullName)); }
public void Can_ignore_lower_source_entity_type_using_entity_clr_type() { var model = new Model(); var modelBuilder = new InternalModelBuilder(model, null); modelBuilder.Entity(typeof(Customer), ConfigurationSource.Convention); Assert.True(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.DataAnnotation)); Assert.Null(model.TryGetEntityType(typeof(Customer))); Assert.True(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.DataAnnotation)); Assert.Null(modelBuilder.Entity(typeof(Customer), ConfigurationSource.Convention)); Assert.NotNull(modelBuilder.Entity(typeof(Customer), ConfigurationSource.DataAnnotation)); }
public void Can_ignore_lower_source_entity_type_using_entity_type_name() { var model = new Model(); var modelBuilder = new InternalModelBuilder(model, null); modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.DataAnnotation); Assert.True(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.Explicit)); Assert.Null(model.TryGetEntityType(typeof(Customer).FullName)); Assert.True(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.Explicit)); Assert.Null(modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.DataAnnotation)); Assert.Equal(Strings.EntityIgnoredExplicitly(typeof(Customer).FullName), Assert.Throws <InvalidOperationException>(() => Assert.Null(modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.Explicit))).Message); }
public void Cannot_ignore_existing_entity_type_using_entity_type_name() { var model = new Model(); var entityType = model.AddEntityType(typeof(Customer).FullName); var modelBuilder = new InternalModelBuilder(model, null); Assert.Same(entityType, modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.Convention).Metadata); Assert.False(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.DataAnnotation)); Assert.Same(entityType, modelBuilder.Entity(typeof(Customer).FullName, ConfigurationSource.Convention).Metadata); Assert.False(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.DataAnnotation)); Assert.NotNull(model.TryGetEntityType(typeof(Customer).FullName)); Assert.Equal(Strings.EntityAddedExplicitly(typeof(Customer).FullName), Assert.Throws <InvalidOperationException>(() => Assert.False(modelBuilder.Ignore(typeof(Customer).FullName, ConfigurationSource.Explicit))).Message); }
public void ForeignKey_returns_null_for_property_names_if_entity_type_ignored() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder.Ignore(typeof(Customer), ConfigurationSource.Explicit); var entityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit); var foreignKeyBuilder = entityBuilder.ForeignKey(typeof(Customer).FullName, new[] { Order.CustomerIdProperty.Name, Order.CustomerUniqueProperty.Name }, ConfigurationSource.Convention); Assert.Null(foreignKeyBuilder); }
public void BuildRelationship_returns_null_for_clr_types_if_principal_entity_type_ignored() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder.Ignore(typeof(Customer), ConfigurationSource.Explicit); var orderEntityBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit); var relationshipBuilder = orderEntityBuilder.BuildRelationship(typeof(Customer), typeof(Order), null, null, /*oneToOne:*/ true, ConfigurationSource.Convention); Assert.Null(relationshipBuilder); }
public void BuildRelationship_returns_null_for_clr_types_if_dependent_entity_type_ignored() { var modelBuilder = new InternalModelBuilder(new Model(), null); var customerEntityBuilder = modelBuilder.Entity(typeof(Customer), ConfigurationSource.Explicit); customerEntityBuilder.Key(new[] { Customer.IdProperty, Customer.UniqueProperty }, ConfigurationSource.Explicit); modelBuilder.Ignore(typeof(Order), ConfigurationSource.Explicit); var relationshipBuilder = customerEntityBuilder.BuildRelationship(typeof(Customer), typeof(Order), null, null, /*oneToOne:*/ true, ConfigurationSource.Convention); Assert.Null(relationshipBuilder); }
public void Cannot_ignore_entity_type_referenced_from_same_or_higher_source_foreign_key() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder .Entity(typeof(Customer), ConfigurationSource.Convention) .Key(new[] { Customer.IdProperty }, ConfigurationSource.Convention); var orderEntityTypeBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Convention); Assert.NotNull(orderEntityTypeBuilder.ForeignKey(typeof(Customer), new[] { Order.CustomerIdProperty }, ConfigurationSource.Explicit)); Assert.False(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.DataAnnotation)); Assert.Equal(2, modelBuilder.Metadata.EntityTypes.Count); Assert.Equal(1, orderEntityTypeBuilder.Metadata.ForeignKeys.Count); }
public void Can_ignore_entity_type_referenced_from_lower_source_foreign_key() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder .Entity(typeof(Customer), ConfigurationSource.Convention) .Key(new[] { Customer.IdProperty }, ConfigurationSource.Convention); var orderEntityTypeBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Explicit); Assert.NotNull(orderEntityTypeBuilder.ForeignKey(typeof(Customer), new[] { Order.CustomerIdProperty }, ConfigurationSource.Convention)); Assert.True(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.Explicit)); Assert.Equal(typeof(Order), modelBuilder.Metadata.EntityTypes.Single().Type); Assert.Empty(orderEntityTypeBuilder.Metadata.ForeignKeys); }
public void Ignoring_an_entity_type_removes_lower_source_orphaned_entity_types() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder .Entity(typeof(Customer), ConfigurationSource.Convention) .Key(new[] { Customer.IdProperty }, ConfigurationSource.Convention); modelBuilder .Entity(typeof(Product), ConfigurationSource.Convention) .Key(new[] { Product.IdProperty }, ConfigurationSource.Convention); var orderEntityTypeBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Convention); orderEntityTypeBuilder.ForeignKey(typeof(Customer), new[] { Order.CustomerIdProperty }, ConfigurationSource.Convention); orderEntityTypeBuilder.ForeignKey(typeof(Product), new[] { Order.ProductIdProperty }, ConfigurationSource.Convention); Assert.True(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.Explicit)); Assert.Empty(modelBuilder.Metadata.EntityTypes); }
public void Ignoring_an_entity_type_does_not_remove_referencing_lower_source_entity_types() { var modelBuilder = new InternalModelBuilder(new Model(), null); modelBuilder .Entity(typeof(Customer), ConfigurationSource.Convention) .Key(new[] { Customer.IdProperty }, ConfigurationSource.Convention); modelBuilder .Entity(typeof(Product), ConfigurationSource.Explicit) .Key(new[] { Product.IdProperty }, ConfigurationSource.Convention); var orderEntityTypeBuilder = modelBuilder.Entity(typeof(Order), ConfigurationSource.Convention); orderEntityTypeBuilder.ForeignKey(typeof(Customer), new[] { Order.CustomerIdProperty }, ConfigurationSource.Convention); orderEntityTypeBuilder.ForeignKey(typeof(Product), new[] { Order.ProductIdProperty }, ConfigurationSource.Convention); Assert.True(modelBuilder.Ignore(typeof(Customer), ConfigurationSource.DataAnnotation)); Assert.Equal(new[] { typeof(Order), typeof(Product) }, modelBuilder.Metadata.EntityTypes.Select(et => et.Type)); Assert.Equal(typeof(Product), orderEntityTypeBuilder.Metadata.ForeignKeys.Single().ReferencedEntityType.Type); }