public void Test_Union_3()
        {
            //结果
            var result = new Str();

            result.AppendLine("(Select [a],[b] ");
            result.AppendLine("From [Test] ");
            result.AppendLine("Where [c]=@_p_1 ");
            result.AppendLine(") ");
            result.AppendLine("Union ");
            result.AppendLine("(Select [a],[b] ");
            result.AppendLine("From [Test2] ");
            result.AppendLine("Where [c]=@_p_0 ");
            result.AppendLine(") ");
            result.Append("Order By [a]");

            //执行
            var builder2 = _builder.New().Select("a,b").From("Test2").Where("c", 1).OrderBy("b");

            _builder.Select("a,b").From("Test").Where("c", 2).OrderBy("a").Union(builder2);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(1, _builder.GetParams()["@_p_0"]);
            Assert.Equal(2, _builder.GetParams()["@_p_1"]);
        }
        public void Test_IsDeletedFilter_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [s].[StringValue] ");
            result.AppendLine("From [Sample5] As [s] ");
            result.AppendLine("Join [Sample2] As [s2] On [s].[IntValue]=[s2].[IntValue] ");
            result.Append("Where [s].[IsDeleted]=@_p_0");

            //执行
            _builder.Select <Sample5>(t => t.StringValue).From <Sample5>("s").Join <Sample2>("s2").On <Sample5, Sample2>((l, r) => l.IntValue == r.IntValue);

            //验证
            Output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
        public void Test_With_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("With [Test] ");
            result.AppendLine("As (Select [a],[b] ");
            result.AppendLine("From [Test2])");
            result.AppendLine("Select [a],[b] ");
            result.Append("From [Test]");

            //执行
            var builder2 = _builder.New().Select("a,b").From("Test2");

            _builder.Select("a,b").From("Test").With("Test", builder2);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
        public void Test_IgnoreFilter_3()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [s5].[StringValue] ");
            result.AppendLine("From [Sample5] As [s5] ");
            result.AppendLine("Join [Sample6] As [s6] On [s5].[IntValue]=[s6].[IntValue] ");
            result.AppendLine("Left Join [Sample7] As [s7] On [s6].[IntValue]=[s7].[IntValue] ");
            result.Append("Right Join [Sample8] As [s8] On [s7].[IntValue]=[s8].[IntValue]");

            //执行
            _builder.Select <Sample5>(t => t.StringValue)
            .From <Sample5>("s5")
            .Join <Sample6>("s6").On <Sample5, Sample6>((l, r) => l.IntValue == r.IntValue)
            .LeftJoin <Sample7>("s7").On <Sample6, Sample7>((l, r) => l.IntValue == r.IntValue)
            .RightJoin <Sample8>("s8").On <Sample7, Sample8>((l, r) => l.IntValue == r.IntValue)
            .IgnoreFilter <IsDeletedFilter>();

            //验证
            Output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }