像我在.dbml中一樣,可以將SQL函數添加到我的.edmx文件嗎?如果可以的話,該怎麼做?如果我不能,是否有任何解決方法?如何將SQL用戶定義函數添加到實體框架?
我試圖谷歌,但無法找到任何具體的答案如何做到這一點。
基於給定的答案,我創建了一個存儲過程並試圖添加一個'導入函數',但它說'存儲過程不返回''列。我在哪裏做錯了? 功能:
ALTER FUNCTION [dbo].[fn_locationSearch](@keyword varchar(10))
RETURNS TABLE
AS
RETURN
(
SELECT CustomerBranch.ID,CustomerBranch.BranchName,CustomerBranch.Longitude,CustomerBranch.Latitue,CustomerBranch.Telephone,CustomerBranch.CategoryID,CustomerBranch.Description
FROM FREETEXTTABLE (CustomerOffer,*,@keyword) abc INNER JOIN OffersInBranch
ON abc.[key]=OffersInBranch.OfferID INNER JOIN CustomerBranch ON OffersInBranch.BranchID=CustomerBranch.ID
UNION
SELECT CustomerBranch.ID,CustomerBranch.BranchName,CustomerBranch.Longitude,CustomerBranch.Latitude,CustomerBranch.Telephone,CustomerBranch.CategoryID,CustomerBranch.Description
FROM CustomerBranch WHERE FREETEXT(*,@keyword)
)
存儲過程:
ALTER PROCEDURE USP_locationSearch
(@keyword varchar(10))
AS
BEGIN
SELECT * from dbo.fn_locationSearch(@keyword)
END
謝謝。在這種情況下,我將能夠編寫查詢,如var result = from dc.mytable join中的p在dc.myUSPwithFunc('id')...中? – kandroid
是的,當您添加存儲過程時,您將需要添加一個函數導入,並且返回類型將是一個複雜類型,EF設計人員可以爲您生成一個新的複雜類型。 '複雜類型'實際上是一個基於你的過程返回的字段的新類。 – keithwarren7
嗨。我只是沒有通過。 :(我已經編輯了我的帖子,並添加了我試圖按照你的答案寫的代碼。你可以看一下嗎? – kandroid