C# DbExtensions-无法操作SqlBuilder

C# DbExtensions-无法操作SqlBuilder,c#,sql,.net,vb.net,dbextensions,C#,Sql,.net,Vb.net,Dbextensions,我有一个现有的SqlBuilder,如下所示 var query = SQL .WHERE("Field1 = {0}", "bob"); 现在我想将这个sqlBuilder传递到另一个函数中,这样就可以对它进行操作,通过SELECT、FROM和其他where子句可以将其添加到该函数中,但这似乎是不可能的 如果我将这个sqlBuilder传递到一个函数中并调用 public void myFunction(SqlBuilder sqlBuilder) { var newBuil

我有一个现有的SqlBuilder,如下所示

var query = SQL
    .WHERE("Field1 = {0}", "bob");
现在我想将这个sqlBuilder传递到另一个函数中,这样就可以对它进行操作,通过SELECT、FROM和其他where子句可以将其添加到该函数中,但这似乎是不可能的

如果我将这个sqlBuilder传递到一个函数中并调用

public void myFunction(SqlBuilder sqlBuilder)
{
    var newBuilder = sqlBuilder.Clone()
        .SELECT("*")
        .FROM("myTable")
        .WHERE("Field2 = {0}", "something");
}
现在,我希望SQL类似于

SELECT * FROM myTable WHERE Field1 = 'bob' AND Field2 = 'something'
但是我得到的SQL等于

WHERE Field1 = 'bob' SELECT * FROM myTable WHERE Field2 = 'something'
显然这是无效的。我怎么能做我想做的?这在DbExtensions中是不可能的吗


正如我所说的,我想操作现有的SqlBuilder(首先克隆它)并向其添加额外的子句。你必须按顺序添加每个条款吗?认为它会在某种背景字典中保存每一个,直到需要创建SQL字符串为止?

使用SqlBuilder,顺序很重要,就像使用StringBuilder一样。您要么修改代码,要么改用。

似乎在插入代码时,我在排序方面也有同样的问题。我已经看过SqlSet,但是不能用它插入。看来我得修改代码了。Pitty,因为我现在必须在代码中循环两次,一次用于填充INSERT INTO,另一次用于执行值。你也找到这个了吗?