public async Task CreateTable()
        {
            using var conn = CreateConnection();
            // 如果实体的 Schema 没有配置表名,则使用类名
            await conn.ExecuteAsync($"drop table if exists {Escape}test{Escape}.{Escape}createtable{Escape};");

            {
                var storage = CreateStorage(StorageMode.Insert);
                await storage.InitializeAsync();

                var context = new DataFlowContext(null, new SpiderOptions(),
                                                  new Request(), new Response());
                var typeName = typeof(CreateTableEntity3);
                var entity   = new CreateTableEntity3();

                var items = new List <CreateTableEntity3> {
                    entity
                };
                context.AddData(typeName, items);
                await storage.HandleAsync(context);

                var list = (await conn.QueryAsync <CreateTableEntity3>(
                                $"SELECT * FROM {Escape}test{Escape}.{Escape}createtable{Escape}")).ToList();
                Assert.Single(list);
                entity = list.First();
                Assert.Equal("xxx", entity.Str1);
                Assert.Equal("yyy", entity.Str2);
                Assert.Equal(655, entity.Required);
                Assert.Equal(0, entity.Decimal);
                Assert.Equal(600, entity.Long);
                Assert.Equal(400, entity.Double);
                Assert.Equal(200.0F, entity.Float);
                await conn.ExecuteAsync($"drop table if exists {Escape}test{Escape}.{Escape}createtable{Escape};");
            }
        }
        public async Task CreateTable()
        {
            using (var conn = CreateConnection())
            {
                // 如果实体的 Schema 没有配置表名,则使用类名
                await conn.ExecuteAsync("drop table if exists test.dbo.createtable;");

                {
                    var storage  = CreateStorage(StorageMode.Insert);
                    var dfc      = new DataContext(null, null, null, null);
                    var typeName = typeof(CreateTableEntity3);
                    var entity   = new CreateTableEntity3();

                    var items = new List <CreateTableEntity3> {
                        entity
                    };
                    dfc.AddData(typeName, items);
                    await storage.HandleAsync(dfc);

                    var list =
                        (await conn.QueryAsync <CreateTableEntity3>("SELECT * FROM test.dbo.createtable")).ToList();
                    Assert.Single(list);
                    entity = list.First();
                    Assert.Equal("xxx", entity.Str1);
                    Assert.Equal("yyy", entity.Str2);
                    Assert.Equal(655, entity.Required);
                    Assert.Equal(0, entity.Decimal);
                    Assert.Equal(600, entity.Long);
                    Assert.Equal(400, entity.Double);
                    Assert.Equal(200.0F, entity.Float);
                    await conn.ExecuteAsync("drop table if exists test.dbo.createtable;");
                }
            }
        }
Exemplo n.º 3
0
        public async Task CreateTable()
        {
            using (var conn = CreateConnection())
            {
                // 如果实体的 Schema 没有配置表名,则使用类名
                await conn.ExecuteAsync("drop table if exists test.dbo.createtable;");

                var services = SpiderProvider.Value.CreateScopeServiceProvider();
                var storage  = CreateStorage(StorageType.Insert);
                var dfc      = new DataFlowContext(null, services);
                var typeName = typeof(CreateTableEntity3).FullName;
                var entity   = new CreateTableEntity3();
                dfc.Add(typeName, entity.GetTableMetadata());
                var items = new ParseResult <CreateTableEntity3>
                {
                    entity
                };
                dfc.AddParseItem(typeName, items);
                await storage.HandleAsync(dfc);

                var list = (await conn.QueryAsync <CreateTableEntity3>("SELECT * FROM test.dbo.createtable")).ToList();
                Assert.Single(list);
                entity = list.First();
                Assert.Equal("xxx", entity.Str1);
                Assert.Equal("yyy", entity.Str2);
                Assert.Equal(655, entity.Required);
                Assert.Equal(0, entity.Decimal);
                Assert.Equal(600, entity.Long);
                Assert.Equal(400, entity.Double);
                Assert.Equal(200.0F, entity.Float);
                await conn.ExecuteAsync("drop table if exists test.dbo.createtable;");
            }
        }