首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DbExtensions -无法操作SqlBuilder

DbExtensions -无法操作SqlBuilder
EN

Stack Overflow用户
提问于 2015-06-19 23:29:56
回答 1查看 227关注 0票数 0

我有一个现有的SqlBuilder,它看起来像这样

代码语言:javascript
复制
var query = SQL
    .WHERE("Field1 = {0}", "bob");

现在我想把这个sqlBuilder传递给另一个函数,这样它就可以被操纵了,可以通过SELECT,FROM和附加的where子句添加到其中,但这似乎是不可能的?

如果我将这个sqlBuilder传递给一个函数并像这样调用.SELECT

代码语言:javascript
复制
public void myFunction(SqlBuilder sqlBuilder)
{
    var newBuilder = sqlBuilder.Clone()
        .SELECT("*")
        .FROM("myTable")
        .WHERE("Field2 = {0}", "something");
}

现在,我希望SQL是这样的

代码语言:javascript
复制
SELECT * FROM myTable WHERE Field1 = 'bob' AND Field2 = 'something'

但是我得到的SQL等于

代码语言:javascript
复制
WHERE Field1 = 'bob' SELECT * FROM myTable WHERE Field2 = 'something'

显然,这是无效的。我怎么才能做我想做的事?这在DbExtensions中是不可能实现的吗?

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

EN

回答 1

Stack Overflow用户

发布于 2015-06-20 02:39:01

使用SqlBuilder,顺序很重要,就像使用StringBuilder一样。你要么调整你的代码,要么改用SqlSet

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30941954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档