首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SubSonic别名/Where子句

SubSonic别名/Where子句
EN

Stack Overflow用户
提问于 2010-03-15 15:10:14
回答 2查看 1.1K关注 0票数 1

我想将以下SQL查询转换为SubSonic查询。

SELECT [dbo].[tbl_Agency].[ParentCompanyID] FROM [dbo].[tbl_Agency] WHERE REPLACE(PhoneNumber, ' ', '') LIKE REPLACE('%9481 1111%', ' ', '')

我想我会像下面这样做,但我就是不能让它生成有效的SQL。

代码语言:javascript
复制
     //SubSonic
     string agencyPhoneNumber = "9481 1111";
     SubSonic.SqlQuery subQueryagencyPhoneNumber = new SubSonic.Select(Agency.ParentCompanyIDColumn.ColumnName);
            subQueryagencyPhoneNumber.From(Agency.Schema.TableName);

     //WHERE
     subQueryagencyPhoneNumber.Where("REPLACE(" + Agency.PhoneNumberColumn.ColumnName + ", ' ', '')").Like("%" + agencyPhoneNumber + "%");

有没有人知道如何修复这个问题--我使用的是SubSonic 2.2。我觉得我在吃疯狂的药--这应该很简单,对吧?

干杯,JohnBob

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-15 20:17:01

我认为您需要向内联SQL添加like表达式。

类似于:

代码语言:javascript
复制
var whereSql = string.Format("REPLACE({0}, ' ', '') Like '%{1}%'", Agency.PhoneNumberColumn.ColumnName, agencyPhoneNumber);

subQueryagencyPhoneNumber.Where(whereSql);

Calling an SQL function from a Subsonic.Select上可以看到类似的问题

票数 1
EN

Stack Overflow用户

发布于 2010-03-19 16:58:06

如果最坏的情况是非常复杂的查询,您仍然可以使用亚音速,使用@ http://subsonicproject.com/docs/CodingHorror所述的.CodingHorror()方法

只要选择了subsonic在强制转换集合-> .ExecuteAsCollection()时知道的有效列名,就可以使用活动记录。

当我遇到非常复杂的大型查询时,这为我节省了很多时间。只需确保您仍在使用这些参数并清理您的语句,以便您的输入得到清理。

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

https://stackoverflow.com/questions/2445575

复制
相关文章

相似问题

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