我有一個問題。我在Asp.Net上的一個站點上工作,它使用了一些ORM。我需要使用幾個FullTextSearch函數,比如Contains。但是,當我嘗試用ORM生成它,它會產生這樣的SQL代碼將SQL CONTAINS換成表達式?
SELECT
[Extent1].[ID] AS [ID],
[Extent1].[Name] AS [Name]
FROM [dbo].[SomeTable] AS [Extent1]
WHERE (Contains([Extent1].[Name], N'qq')) = 1
SQL無法解析,因爲包含不返回位值。不幸的是,我無法修改SQL查詢生成過程,但我可以修改其中的語句。
我的問題是 - 是否有可能將CONTAINS函數的調用換成別的東西?我試圖創建另一個函數,將與包含選擇,但它需要特定的表\列對象,我不想爲每個表做一個功能..
編輯
我可以在ORM中修改該函數的結果類型。在前面的示例結果類型是位。我可以將其更改爲int,nvarchar等。但據我所知,SQL中沒有布爾類型,我無法指定它。
難道你不能把它放在存儲過程中,並告訴你的ORM調用存儲過程嗎?爲什麼每個與ORM相關的問題看起來像是ORM在過去的十年中採用了數據庫技術? – 2012-03-21 23:11:52
它可以在'IIF'或'CASE'中使用嗎? – 2012-03-21 23:14:55
是的,我可以,但是通過這種方式,我應該將含有包含的每個SQL都放入新的存儲過程中。如果可能的話,我想做出更通用的方式,它可以在沒有特定表格的情況下處理它。 – 2012-03-21 23:16:03