Asp.net

全文查詢字元串的全文查詢參數無效

  • September 3, 2014

我在我的應用程序中使用帶有 LINQ 的全文搜尋,由於 LINQ 不支持,我使用表值函式解決方法。該函式是在 SQL Server 2008 上創建的。

令人驚訝的是,當我搜尋簡單的文本(例如“經理”)時,出現錯誤“全文查詢字元串的全文查詢參數無效”

我使用 SQL Server Profiler 發現 LINQ 將參數生成為 nvarchar(4000) 而不是我函式中的 nvarchar(250)。

當我更改我的 SQL Server 函式時,最大的驚喜是它接受參數為 nvarchar(4000) 而不是 nvarchar(250) 並且問題得到解決。

我也在玩將參數更改為 nvarchar(2000) 和更少,但這也沒有用。

有人知道為什麼會這樣嗎?

2013 年11 月 18 日更新-好消息和壞消息

好消息 - 我現在在這個特定範例中使用 Entity Framework 6,不再需要使用nvarchar(4000)

壞消息 - 您必須改用nvarchar(max) :-(

有關擴展,請參閱以下連結http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/1a46d676-32f0-44a4-b39f-61a17bccb8e3/

在我的情況下,我不得不強制 JAVA 用匹配的數據類型呼叫我的表值函式,如下所示

query.setParameter(0, variable, new **StringNVarcharType**()  )

引用自:https://stackoverflow.com/questions/3771302