"选定的存储过程或函数不返回任何列"当查询使用FREETEXTTABLE时

时间:2015-12-30 18:54:49

标签: sql-server entity-framework stored-procedures full-text-search

我在SQL Server数据库中有以下存储过程...

create procedure SupportTicketsFullTextSearch
@SearchText varchar(1000)
as
begin
  select ID, k.rank
  from SupportTicketsSummaries st
  inner join freetexttable(SupportTicketsSummaries, (ShortSummary, Description), @SearchText) as k on st.ID=k.[key]
  order by rank desc
end

我想在Entity Framework中使用它,但是当我尝试添加一个函数import时,如果我单击按钮获取列信息,我会得到消息"所选的存储过程或函数不返回任何列& #34;

我已经做了一些搜索,看到很多人遇到同样的问题,但他们似乎都在使用动态查询或临时表。我的查询也没有使用(据我所知),我找不到任何有用的建议。

我尝试添加...

SET FMTONLY OFF

......在SP的开头,但它没有帮助。

任何想法如何将此SP作为函数导入?

1 个答案:

答案 0 :(得分:1)

从未发现为什么导入向导无法看到架构,但事实证明它很容易修复。

您需要做的就是打开模型浏览器,右键单击“复杂类型”节点,然后添加一个新的复杂类型,该类型的属性与存储过程返回的列相匹配。确保名称完全匹配。

然后启动功能导入向导,选择复杂类型,然后从下拉列表中选择刚创建的那个。

希望这有助于某人。