私の.edmxファイルに.dbmlのようにSQL関数を追加できますか?私ができるなら、それをどうやって行うのですか?私ができない場合、回避策はありますか?エンティティフレームワークにSQLユーザ定義関数を追加する方法は?
私はGoogleに挑戦しましたが、その方法について具体的な回答は見つかりませんでした。
私はストアドプロシージャを作成し、 'インポート関数'を追加しようとしましたが、'ストアドプロシージャはカラムを返しません'と表示されます。どこが間違っていますか? 機能:
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
ありがとうございます。その場合、dc.mytableのpからのvar result = dc.myUSPwithFunc( 'id')のjoin qのようなクエリを書くことができますか? – kandroid
はい、ストアドプロシージャを追加するときに関数インポートを追加する必要があり、戻り値の型は複雑な型になります.EFデザイナは新しい複合型を生成できます。 '複合型'は、実際には、プロシージャから返されたフィールドに基づいた新しいクラスです。 – keithwarren7
こんにちは。私はちょうど通過していないです。 :(私は自分の投稿を編集し、あなたの答えに応じて書くようにしているコードを追加しました。 – kandroid