亚音速查询:问题与产生的查询
问题描述:
我有亚音速查询的问题。该协议是,我有一个观点,我想查询它的数据来生成类似下面的SQL语句:亚音速查询:问题与产生的查询
select *
from myView
where (col1 like '%a%' or col2 like '%a%' or col3 like '%a%')
and col4 = 1 and col5 = 2
而是说是submited到数据库查询是这样的:
select *
from myView
where col1 like '%a%' or col2 like '%a%' or col3 like '%a%'
and col4 = 1 and col5 = 2
有没有办法做一些像fisrt查询?
请注意我使用.NET 2.0和2.2亚音速
预先感谢您。
即使这样,亚音速规则!
答
您需要使用Constraint Expressions:WhereExpression
,AndExpression
,OrExpression
,EndExpression
。
“WhereExpression”(或Or/AndExpression)后面的任何内容都将被括在圆括号中。您可以使用“CloseExpression()”来关闭表达式,或者如果另一个被启动(如上面的OrExpression),或者查询结束,它将被关闭。
答
如果您发布您的当前代码,也许我可以给出更具体的答案,但基本上你必须开始WhereExpression
。 对于这样的示例代码:
var usersQuery = new Select(new SubSonic.TableSchema.TableColumn[] { User.UserIdColumn, User.NameColumn })
.From(User.Schema)
.WhereExpression(User.UserIdColumn.ColumnName).IsEqualTo(1).Or(User.UserIdColumn).IsEqualTo(2)
.CloseExpression()
.And(User.NameColumn).Like("a")
给出的查询,如:
SELECT [dbo].[Users].[UserId], [dbo].[Users].[Name]
FROM [dbo].[Users]
WHERE ([dbo].[Users].[UserId] = @UserId0 OR [dbo].[Users].[UserId] = @UserId)
AND [dbo].[Users].[Name] LIKE @Name
你可以发布你当前的代码? – empi 2009-11-16 20:55:10