예제 #1
0
        public void Test_Select_Json_Parameter()
        {
            var options = new JsonSerializerOptions()
            {
                PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
                IgnoreNullValues     = true,
            };
            var store = DatabaseHelper.Default.GetStore();

            store.Use(new JsonBindingContractResolver(options));

            var data = new BlogJsonView()
            {
                Blog = new Blog()
                {
                    Id = 12
                }
            };
            var model        = store.From(data).Lookup("Blog");
            var parameter    = new Parameter("P0", model);
            var sqlParameter = new SqliteParameter();
            var expected     = JsonSerializer.Serialize(data.Blog, options);

            parameter.Build(sqlParameter);

            sqlParameter.Value.ShouldBe(expected);
        }
예제 #2
0
        public void Test_Update_Json()
        {
            var store = DatabaseHelper.Default.GetStore();

            store.Use(new JsonBindingContractResolver(new JsonSerializerOptions()));

            var json    = "{ \"Id\": 12, \"Title\": \"Hello World!\" }";
            var data1   = new BlogJsonView();
            var data2   = new BlogJsonView();
            var target1 = store.From(data1).Lookup("Blog");
            var target2 = store.From(data2).Lookup("Blog");
            var buffer  = new CommandBuffer(store);

            buffer.Add(new ColumnBinding(target1, "B0"));
            buffer.Add(new ParameterBinding(target2, "P0"));

            var parameters = buffer.Prepare(() => new MockParameter());

            parameters[0].Value = json;

            buffer.Update(json, ("", "B0"));

            data1.Blog.ShouldBeNull();
            data2.Blog.ShouldBeNull();

            buffer.Commit();

            data1.Blog.ShouldNotBeNull();
            data1.Blog.Id.ShouldBe(12);
            data1.Blog.Title.ShouldBe("Hello World!");

            data2.Blog.ShouldNotBeNull();
            data2.Blog.Id.ShouldBe(12);
            data2.Blog.Title.ShouldBe("Hello World!");
        }