我想将以下SQL查询转换为SubSonic查询。
SELECT [dbo].[tbl_Agency].[ParentCompanyID] FROM [dbo].[tbl_Agency] WHERE REPLACE(PhoneNumber, ' ', '') LIKE REPLACE('%9481 1111%', ' ', '')
我想我会像下面这样做,但我就是不能让它生成有效的SQL。
//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
发布于 2010-03-15 20:17:01
我认为您需要向内联SQL添加like表达式。
类似于:
var whereSql = string.Format("REPLACE({0}, ' ', '') Like '%{1}%'", Agency.PhoneNumberColumn.ColumnName, agencyPhoneNumber);
subQueryagencyPhoneNumber.Where(whereSql);发布于 2010-03-19 16:58:06
如果最坏的情况是非常复杂的查询,您仍然可以使用亚音速,使用@ http://subsonicproject.com/docs/CodingHorror所述的.CodingHorror()方法
只要选择了subsonic在强制转换集合-> .ExecuteAsCollection()时知道的有效列名,就可以使用活动记录。
当我遇到非常复杂的大型查询时,这为我节省了很多时间。只需确保您仍在使用这些参数并清理您的语句,以便您的输入得到清理。
https://stackoverflow.com/questions/2445575
复制相似问题