public Query dbint()
            {
                var pkeyvar = new OutParam<int>("pkey", (val) => { this.pkey = val;  });

                return new ParamListBulider {
                    pkeyvar,
                    this.p1,
                    this.p2,
                    this.p3
                }
                .BuildQuery("dbo.test")
                .Chain(this.inner.dbint(pkeyvar.In));
            }
        public void SetValueTestInString()
        {
            var userid=new OutParam<int>("userid");
            var dbi = Query.Start.Chain(new SetValue<int>(userid, MapParam.Make<int>(() => 999)));

            dbi = dbi.Chain(
                new TestSpMain() { p1 = 1, p2 = "hello", p3 = "goodbye", inner = new TestSpMain.InnerTestSp() { inner1 = 999 } }.dbint()
            );

            string q = dbi.Make();

            Console.WriteLine(q);
            Assert.IsTrue(q.ToLower().Contains("@userid"));
        }