public async Task UpdatePartColumns() { using (var conn = CreateConnection()) { // 如果实体的 Schema 没有配置表名,则使用类名 await conn.ExecuteAsync( $"drop table if exists {Escape}test{Escape}.{Escape}updatepartcolumns{Escape};"); using (var builder = GetLocalSpiderHostBuilder()) { var provider = builder.Build(); var services = provider.CreateScopeServiceProvider(); var storage = CreateStorage(StorageType.InsertIgnoreDuplicate); var dfc = new DataFlowContext(null, services); var typeName = typeof(CreateTableEntity6).FullName; var entity = new CreateTableEntity6(); dfc.Add(typeName, entity.GetTableMetadata()); var items = new ParseResult <CreateTableEntity6> { entity }; dfc.AddParseData(typeName, items); await storage.HandleAsync(dfc); var dfc2 = new DataFlowContext(null, services); dfc2.Add(typeName, entity.GetTableMetadata()); var now = DateTime.Now; dfc2.AddParseData(typeName, new ParseResult <CreateTableEntity6> { new CreateTableEntity6 { Str1 = "TTT", DateTime = now, DateTimeOffset = now, Double = 888, Float = 999F, Required = 888 } }); var storage2 = CreateStorage(StorageType.Update); await storage2.HandleAsync(dfc2); var list = (await conn.QueryAsync <CreateTableEntity6>( $"SELECT * FROM {Escape}test{Escape}.{Escape}updatepartcolumns{Escape}")) .ToList(); Assert.Single(list); entity = list.First(); Assert.Equal("TTT", entity.Str1); Assert.Equal("yyy", entity.Str2); Assert.Equal(655, entity.Required); Assert.Equal(0, entity.Decimal); Assert.Equal(600, entity.Long); Assert.Equal(888, entity.Double); Assert.Equal(200.0F, entity.Float); await conn.ExecuteAsync( $"drop table if exists {Escape}test{Escape}.{Escape}updatepartcolumns{Escape};"); } } }
public async Task UpdatePartColumns() { using (var conn = CreateConnection()) { // 如果实体的 Schema 没有配置表名,则使用类名 await conn.ExecuteAsync( $"drop table if exists {Escape}test{Escape}.{Escape}updatepartcolumns{Escape};"); { var storage = CreateStorage(StorageMode.InsertIgnoreDuplicate); var context = new DataContext(null, new SpiderOptions(), new Request(), new Response()); var typeName = typeof(CreateTableEntity6); var entity = new CreateTableEntity6(); var items = new List <CreateTableEntity6> { entity }; context.AddData(typeName, items); await storage.HandleAsync(context); var dfc2 = new DataContext(null, new SpiderOptions(), new Request(), new Response()); var now = DateTime.Now; dfc2.AddData(typeName, new List <CreateTableEntity6> { new CreateTableEntity6 { Str1 = "TTT", DateTime = now, DateTimeOffset = now, Double = 888, Float = 999F, Required = 888 } }); var storage2 = CreateStorage(StorageMode.Update); await storage2.HandleAsync(dfc2); var list = (await conn.QueryAsync <CreateTableEntity6>( $"SELECT * FROM {Escape}test{Escape}.{Escape}updatepartcolumns{Escape}")) .ToList(); Assert.Single(list); entity = list.First(); Assert.Equal("TTT", entity.Str1); Assert.Equal("yyy", entity.Str2); Assert.Equal(655, entity.Required); Assert.Equal(0, entity.Decimal); Assert.Equal(600, entity.Long); Assert.Equal(888, entity.Double); Assert.Equal(200.0F, entity.Float); await conn.ExecuteAsync( $"drop table if exists {Escape}test{Escape}.{Escape}updatepartcolumns{Escape};"); } } }