public async Task Should_not_create_pk_if_specified_in_options() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); await using var tempTable = await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <int> { 1 }, new SqlServerTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None }); var keys = ArrangeDbContext.GetTempTableKeyColumns <TempTable <int> >().ToList(); keys.Should().HaveCount(0); }
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() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <int> { 1 }).ConfigureAwait(false); var keys = ArrangeDbContext.GetTempTableKeyColumns <TempTable <int> >().ToList(); keys.Should().HaveCount(1); keys[0].COLUMN_NAME.Should().Be(nameof(TempTable <int> .Column1)); }
public async Task Should_not_create_pk_if_entity_is_keyless_and_provider_is_AccordingToEntityTypeConfiguration() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); await using var tempTable = await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <int> { 1 }, new SqlServerTempTableBulkInsertOptions { TableNameProvider = DefaultTempTableNameProvider.Instance, PrimaryKeyCreation = PrimaryKeyPropertiesProviders.EntityTypeConfiguration }); var keys = ArrangeDbContext.GetTempTableKeyColumns <TempTable <int> >().ToList(); keys.Should().HaveCount(0); }
public async Task Should_insert_string_string() { ConfigureModel = builder => builder.ConfigureTempTable <string, string>(); var values = new List <(string, string)> { ("value1", null) }; var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, new SqlTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyCreation.None }).ConfigureAwait(false); var tempTable = await query.ToListAsync().ConfigureAwait(false); tempTable.Should() .HaveCount(1).And .BeEquivalentTo(new TempTable <string, string>("value1", null)); }
public async Task Should_create_pk_by_default() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); await using var tempTable = await ActDbContext.BulkInsertValuesIntoTempTableAsync(new List <int> { 1 }, new SqlServerTempTableBulkInsertOptions { TableNameProvider = DefaultTempTableNameProvider.Instance, PrimaryKeyCreation = PrimaryKeyPropertiesProviders.AdaptiveForced }); var keys = ArrangeDbContext.GetTempTableKeyColumns <TempTable <int> >().ToList(); keys.Should().HaveCount(1); keys[0].COLUMN_NAME.Should().Be(nameof(TempTable <int> .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_insert_nullable_int() { ConfigureModel = builder => builder.ConfigureTempTable <int?>(); var values = new List <int?> { 1, null }; var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, new SqlTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyCreation.None }).ConfigureAwait(false); var tempTable = await query.ToListAsync().ConfigureAwait(false); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <int?>(1), new TempTable <int?>(null)); }
public async Task Should_insert_int() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); var values = new List <int> { 1, 2 }; var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values).ConfigureAwait(false); var tempTable = await query.ToListAsync().ConfigureAwait(false); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <int>(1), new TempTable <int>(2)); }
public async Task Should_insert_nullable_int_of_a_keyless_entity() { ConfigureModel = builder => builder.ConfigureTempTable <int?>(); var values = new List <int?> { 1, null }; await using var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, new SqlServerTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None }); var tempTable = await query.Query.ToListAsync(); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <int?>(1), new TempTable <int?>(null)); }
public async Task Should_insert_string() { ConfigureModel = builder => builder.ConfigureTempTable <string?>().Property(t => t.Column1).IsRequired(false); var values = new List <string?> { "value1", null }; await using var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, new SqlServerTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None }); var tempTable = await query.Query.ToListAsync(); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <string?>("value1"), new TempTable <string?>(null)); }
public async Task Should_insert_int_with_streaming_disabled() { ConfigureModel = builder => builder.ConfigureTempTable <int>(); var options = new SqlTempTableBulkInsertOptions { BulkInsertOptions = { EnableStreaming = false } }; var values = new List <int> { 1, 2 }; var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, options).ConfigureAwait(false); var tempTable = await query.ToListAsync().ConfigureAwait(false); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <int>(1), new TempTable <int>(2)); }
public async Task Should_insert_nullable_int_of_entity_with_a_key() { ConfigureModel = builder => { var entityBuilder = builder.ConfigureTempTable <int?>(false); entityBuilder.HasKey(t => t.Column1); entityBuilder.Property(t => t.Column1).ValueGeneratedNever(); }; var values = new List <int?> { 1, 2 }; await using var query = await ActDbContext.BulkInsertValuesIntoTempTableAsync(values, new SqlServerTempTableBulkInsertOptions { PrimaryKeyCreation = PrimaryKeyPropertiesProviders.None }); var tempTable = await query.Query.ToListAsync(); tempTable.Should() .HaveCount(2).And .BeEquivalentTo(new TempTable <int?>(1), new TempTable <int?>(2)); }