Tôi có thể thêm một hàm SQL vào tệp .edmx của tôi giống như tôi làm trong .dbml không? Nếu tôi có thể, làm thế nào để làm điều đó? Nếu tôi không thể, có cách nào khác không?Làm cách nào để thêm hàm SQL do người dùng định nghĩa vào khung thực thể?
Tôi đã cố gắng sử dụng Google nhưng không thể tìm thấy bất kỳ câu trả lời cụ thể nào về cách thực hiện điều đó.
Dựa trên câu trả lời đã cho Tôi đã tạo thủ tục Đã lưu và cố gắng thêm 'hàm nhập', nhưng nó cho biết 'thủ tục được lưu trữ sẽ trả về không có cột'. Tôi đang làm gì sai? Chức năng:
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)
)
Thủ tục lưu trữ:
ALTER PROCEDURE USP_locationSearch
(@keyword varchar(10))
AS
BEGIN
SELECT * from dbo.fn_locationSearch(@keyword)
END
Cảm ơn. Trong trường hợp đó tôi sẽ có thể viết truy vấn, như var result = from p trong dc.mytable join q trong dc.myUSPwithFunc ('id') ... ?? – kandroid
Có, khi bạn thêm thủ tục lưu sẵn, bạn sẽ cần phải thêm một chức năng nhập khẩu và kiểu trả về sẽ là một kiểu phức tạp, nhà thiết kế EF có khả năng tạo ra một kiểu phức tạp mới cho bạn. 'Loại phức tạp' thực sự là một lớp mới dựa trên các trường được trả về bởi quy trình của bạn. – keithwarren7
Xin chào. Tôi chỉ không nhận được thông qua. :(Tôi đã sửa bài viết của tôi và thêm mã tôi đang cố gắng để viết theo câu trả lời của bạn.Bạn có thể có một cái nhìn? – kandroid