public async Task Should_create_temp_table_without_primary_key() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); _optionsWithNonUniqueName.PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None; await using var tempTable = await SUT.CreateTempTableAsync(ActDbContext.GetEntityType <TempTable <int> >(), _optionsWithNonUniqueName); var constraints = await AssertDbContext.GetTempTableKeyColumns <TempTable <int> >().ToListAsync(); constraints.Should().BeEmpty(); }
public async Task Should_create_pk_by_default_on_string_column() { ConfigureModel = builder => builder.ConfigureTempTable <string>().Property(t => t.Column1).HasMaxLength(100).IsRequired(); await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <string> { "value" }).ConfigureAwait(false); var keys = AssertDbContext.GetTempTableKeyColumns <TempTable <string> >().ToList(); keys.Should().HaveCount(1); keys[0].COLUMN_NAME.Should().Be(nameof(TempTable <string> .Column1)); }
public async Task Should_create_pk_by_default_on_string_column() { ConfigureModel = builder => builder.ConfigureTempTable <string>().Property(t => t.Column1).HasMaxLength(100).IsRequired(); await using var tempTable = await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <string> { "value" }, new SqlServerTempTableBulkInsertOptions { TableNameProvider = DefaultTempTableNameProvider.Instance, PrimaryKeyCreation = PrimaryKeyPropertiesProviders.AdaptiveForced }); var keys = AssertDbContext.GetTempTableKeyColumns <TempTable <string> >().ToList(); keys.Should().HaveCount(1); keys[0].COLUMN_NAME.Should().Be(nameof(TempTable <string> .Column1)); }
public async Task Should_create_pk_if_options_flag_is_set() { _optionsWithNonUniqueName.PrimaryKeyCreation = PrimaryKeyPropertiesProviders.AdaptiveForced; ConfigureModel = builder => builder.ConfigureTempTable <int, string>().Property(s => s.Column2).HasMaxLength(100); // ReSharper disable once RedundantArgumentDefaultValue await using var tempTable = await SUT.CreateTempTableAsync(ActDbContext.GetEntityType <TempTable <int, string> >(), _optionsWithNonUniqueName); var keyColumns = await AssertDbContext.GetTempTableKeyColumns <TempTable <int, string> >().ToListAsync(); keyColumns.Should().HaveCount(2); keyColumns[0].Name.Should().Be(nameof(TempTable <int, string> .Column1)); keyColumns[1].Name.Should().Be(nameof(TempTable <int, string> .Column2)); }
public async Task Should_create_primary_key_for_entityType() { var tableName = await ArrangeDbContext.CreateTempTableAsync <TestEntity>(); await _sut.CreatePrimaryKeyAsync(ActDbContext, ActDbContext.GetEntityType <TestEntity>(), tableName); var constraints = await AssertDbContext.GetTempTableConstraints <TestEntity>().ToListAsync(); constraints.Should().HaveCount(1) .And.Subject.First().CONSTRAINT_TYPE.Should().Be("PRIMARY KEY"); var keyColumns = await AssertDbContext.GetTempTableKeyColumns <TestEntity>().ToListAsync(); keyColumns.Should().HaveCount(1) .And.Subject.First().COLUMN_NAME.Should().Be(nameof(TestEntity.Id)); }
public async Task Should_not_throw_if_some_pk_columns_are_missing_and_provider_is_Adaptive() { _optionsWithNonUniqueName.PrimaryKeyCreation = PrimaryKeyPropertiesProviders.AdaptiveForced; _optionsWithNonUniqueName.MembersToInclude = EntityMembersProvider.From <CustomTempTable>(t => t.Column1); ConfigureModel = builder => { var entity = builder.ConfigureTempTableEntity <CustomTempTable>(false); entity.Property(s => s.Column2).HasMaxLength(100); entity.HasKey(s => new { s.Column1, s.Column2 }); }; // ReSharper disable once RedundantArgumentDefaultValue await using var tempTable = await SUT.CreateTempTableAsync(ActDbContext.GetEntityType <CustomTempTable>(), _optionsWithNonUniqueName); var keyColumns = await AssertDbContext.GetTempTableKeyColumns <CustomTempTable>().ToListAsync(); keyColumns.Should().HaveCount(1); keyColumns[0].COLUMN_NAME.Should().Be(nameof(CustomTempTable.Column1)); }
public async Task Should_create_primary_key_for_entityType() { await using var tempTableReference = await ArrangeDbContext.CreateTempTableAsync <TestEntity>(new TempTableCreationOptions { TableNameProvider = DefaultTempTableNameProvider.Instance, PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None }); var entityType = ActDbContext.GetEntityType <TestEntity>(); await SUT.CreatePrimaryKeyAsync(ActDbContext, PrimaryKeyPropertiesProviders.AdaptiveForced.GetPrimaryKeyProperties(entityType, entityType.GetProperties().ToList()), tempTableReference.Name); var constraints = await AssertDbContext.GetTempTableConstraints <TestEntity>().ToListAsync(); constraints.Should().HaveCount(1) .And.Subject.First().CONSTRAINT_TYPE.Should().Be("PRIMARY KEY"); var keyColumns = await AssertDbContext.GetTempTableKeyColumns <TestEntity>().ToListAsync(); keyColumns.Should().HaveCount(1) .And.Subject.First().COLUMN_NAME.Should().Be(nameof(TestEntity.Id)); }