public async Task Should_insert_entityType_without_touching_real_table() { var entity = new TestEntity { Id = new Guid("577BFD36-21BC-4F9E-97B4-367B8F29B730"), Name = "Name", Count = 42, ConvertibleClass = new ConvertibleClass(43) }; ArrangeDbContext.TestEntities.Add(entity); await ArrangeDbContext.SaveChangesAsync(); var entities = new List <TestEntity> { entity }; await using var query = await ActDbContext.BulkInsertIntoTempTableAsync(entities); var tempTable = await query.Query.ToListAsync(); tempTable.Should() .HaveCount(1).And .BeEquivalentTo(new TestEntity { Id = new Guid("577BFD36-21BC-4F9E-97B4-367B8F29B730"), Name = "Name", Count = 42, ConvertibleClass = new ConvertibleClass(43) }); }
public async Task Should_return_disposable_query() { await using var tempTableQuery = await ActDbContext.BulkInsertIntoTempTableAsync(Array.Empty <TestEntity>()); tempTableQuery.Dispose(); tempTableQuery.Awaiting(t => t.Query.ToListAsync()) .Should().Throw <SqlException>().Where(ex => ex.Message.StartsWith("Invalid object name '#TestEntities", StringComparison.Ordinal)); }
public async Task Should_insert_queryType() { ConfigureModel = builder => builder.ConfigureTempTableEntity <CustomTempTable>().Property(t => t.Column2).HasMaxLength(100).IsRequired(); var entities = new List <CustomTempTable> { new CustomTempTable(1, "value") }; var query = await ActDbContext.BulkInsertIntoTempTableAsync(entities); var tempTable = await query.ToListAsync(); tempTable.Should() .HaveCount(1).And .BeEquivalentTo(new CustomTempTable(1, "value")); }