2013-07-09 184 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

它因爲你需要使用返回關鍵字並返回你正在尋找的列我沒有這樣做的經驗,所以即時通訊不會發布穀歌的查詢,並希望它的工作,但我不這樣做是你的問題只是谷歌返回列。