C# DbExtensions-无法操作SqlBuilder
我有一个现有的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
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,另一次用于执行值。你也找到这个了吗?