我正在使用Entity Framework v6.3并调用DbSet.SqlQuery
来查询某个国家/地区的表格。为表和列启用了全文索引。发出的SQL如下:
exec sp_executesql N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(13)',@p0=N'United States'
这给了我错误:Syntax error near 'States' in the full-text search condition 'United States'.
我已经阅读了如何正常操作:
SELECT * FROM tblBaseGeos WHERE Contains(Name, '"United States"')
这有效,但我在使用sp_executesql
的双引号时遇到问题。我该如何修复查询?
答案 0 :(得分:1)
用双引号括住搜索词组,并在nvarchar参数的长度上添加2个符号。下面的代码工作正常
exec sp_executesql
N'SELECT * FROM tblBaseGeos WHERE Contains(Name, @p0)',N'@p0 nvarchar(15)',
@p0=N'"United States"'