2013-07-09 82 views
2

我在启用FTS引擎的情况下运行MSSQL 2012。我有以下的存储过程,其对VARCHAR列进行全文搜索:实体框架无法导入执行FTS的存储过程

CREATE PROCEDURE [PROE].[SP_SearchLabOrdersByPatientNameAndDateRange] 
    @searchString varchar(160) 
    , @dtFrom datetime 
    , @dtTo datetime 
AS 
    SET NOCOUNT ON 

    SELECT ord.Id, ord.FullName, ord.SomeOtherColumns 
    FROM 
     PROE.PatientLabOrders ord 
    WHERE 
     FREETEXT(ord.FullName, @searchString) 
     AND ord.OrderDateTime BETWEEN @dtFrom AND @dtTo 

当我输入上面的存储过程中,EDM模型设计器不显示任何DTO列信息。取而代之的是,模型浏览器中显示以下消息:

的选择存储过程或函数返回没有列

图片:

我对此有一些变化在其他列上执行常规(而非FTS)搜索的sproc - 所有这些sprocs都可以通过EF 5正确导入。只有上面的sproc使用全文搜索。我已经在SQL服务器管理器中运行了上述存储过程,并且它按预期返回了行。然而,EF5设计师仍然无法检测到该sproc返回的列。

我在做什么错?

+0

我对你的问题一无所知,但偶然看过这个,原因可能是你选择了“无”作为返回类型? – ynka

+0

@ynka:感谢您的及时回复。 EDM设计者默认选择“无”选项。我试图强制返回类型(之前从类似sprocs导入的复杂实体类型)到它 - 无济于事。 – masroore

回答

0

它因为你需要使用返回关键字并返回你正在寻找的列我没有这样做的经验,所以即时通讯不会发布谷歌的查询,并希望它的工作,但我不这样做是你的问题只是谷歌返回列。