簡體   English   中英

亞音速查詢:產生的查詢問題

[英]Subsonic query: issue with the produced query

亞音速查詢出現問題。 關鍵是,我有一個視圖,我想查詢它的數據以產生類似以下SQL語句的內容:

select * 
from myView
where (col1 like '%a%' or col2 like '%a%' or col3 like '%a%') 
  and col4 = 1 and col5 = 2

但是,提交給數據庫的查詢是這樣的:

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和subsonic 2.2

先感謝您。

即使這樣做,亞音速規則!

您需要使用約束表達式WhereExpressionAndExpressionOrExpressionEndExpression

“ WhereExpression”(或“ Or / AndExpression”)之后的所有內容都將用括號括起來。 您可以使用“ CloseExpression()”關閉表達式,或者如果另一個表達式已啟動(如上述OrExpression)或查詢結束,它將為您關閉。

另請參閱: 使用嵌套的Where / And / Or

如果您發布當前代碼,也許我可以給出更具體的答案,但是基本上您必須啟動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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM