public void Configure_has_index_on_multiple_properties_index_ordered() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasIndex(e => new { e.AccountNumber, e.CustomerID, e.CustomerType }); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerID"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration("IX_AccountNumber_CustomerID_CustomerType", 1, null, null); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "AccountNumber"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration("IX_AccountNumber_CustomerID_CustomerType", 0, null, null); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerType"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration("IX_AccountNumber_CustomerID_CustomerType", 2, null, null); } }
public void Configure_multiple_has_index_creates_indexes() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasIndex(e => e.CustomerID); modelBuilder.Entity <Customer>() .HasIndex(e => e.CustomerType); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerID"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration(null, null, null, null); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerType"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration(null, null, null, null); } }
public void Configure_multiple_has_index_overlap_creates_indexes() { const string index1Name = "ID_Then_Type"; const string index2Name = "Type_Then_ID"; var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasIndex(e => new { e.CustomerID, e.CustomerType }) .HasName(index1Name); modelBuilder.Entity <Customer>() .HasIndex(e => new { e.CustomerType, e.CustomerID }) .HasName(index2Name); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerID"); Assert.Equal(2, indexAttributes.Count()); indexAttributes.First().AssertConfiguration(index1Name, 0, null, null); indexAttributes.Skip(1).First().AssertConfiguration(index2Name, 1, null, null); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerType"); Assert.Equal(2, indexAttributes.Count()); indexAttributes.First().AssertConfiguration(index1Name, 1, null, null); indexAttributes.Skip(1).First().AssertConfiguration(index2Name, 0, null, null); } }
public void Build_model_containing_a_complex_type_with_instance_cspace_configuration_override() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <ProductDescription>() .Property(pd => pd.RowDetails.rowguid) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed); modelBuilder.ComplexType <RowDetails>() .Property(rd => rd.rowguid) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); Assert.Throws <InvalidOperationException>(() => modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo)); }
public void Configure_has_key_on_property_creates_index() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasKey(e => e.CustomerID); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttribute = ConfiguredPrimaryKeyIndexAttribute(model, "Customer"); indexAttribute.AssertConfiguration(null, null, null, null); } }
public void Configure_configure_key_on_property_index_clustered() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .ConfigureKey() .IsClustered(true); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttribute = ConfiguredPrimaryKeyIndexAttribute(model, "Customer"); indexAttribute.AssertConfiguration(null, null, null, true); } }
public void Configure_has_index_on_property_index_clustered() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasIndex(e => e.CustomerID) .IsClustered(true); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerID"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration(null, null, null, true); } }
public void Configure_has_key_on_multiple_properties_index_clustered() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasKey(e => new { e.AccountNumber, e.CustomerID }) .ConfigureKey() .IsClustered(true); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttribute = ConfiguredPrimaryKeyIndexAttribute(model, "Customer"); indexAttribute.AssertConfiguration(null, null, null, true); } }
public void Configure_configure_key_on_property_index_named() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasKey( e => e.CustomerID, b => b.HasName("PK_Foo_Bar")); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttribute = ConfiguredPrimaryKeyIndexAttribute(model, "Customer"); indexAttribute.AssertConfiguration("PK_Foo_Bar", null, null, null); } }
public void Configure_has_key_has_index_creates_indexes_complex() { var modelBuilder = new AdventureWorksModelBuilder(); modelBuilder.Entity <Customer>() .HasKey(e => new { e.CustomerID, e.AccountNumber }) .ConfigureKey() .IsClustered(false); modelBuilder.Entity <Customer>() .HasIndex(e => new { e.CustomerType, e.rowguid }) .IsUnique() .IsClustered(); var model = modelBuilder.Build(ProviderRegistry.Sql2008_ProviderInfo); { var indexAttribute = ConfiguredPrimaryKeyIndexAttribute(model, "Customer"); indexAttribute.AssertConfiguration(null, null, null, false); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "CustomerType"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration("IX_CustomerType_rowguid", 0, true, true); } { var indexAttributes = ConfiguredIndexAttributes(model, "Customer", "rowguid"); Assert.Single(indexAttributes); indexAttributes.Single().AssertConfiguration("IX_CustomerType_rowguid", 1, true, true); } }