0
我有一個現有的SqlBuilder,它看起來像這樣DbExtensions - 無法操縱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字符串爲止?
似乎我在訂購時也遇到同樣的問題,插入時也是如此。我看過SqlSet,但不能用它插入。看起來我必須改變我的代碼。 Pitty,因爲我現在必須循環兩次代碼,一次填充INSERT INTO,並再次執行VALUES。你有沒有找到這個? – Gillardo