EF 允許將實體的插入、更新、刪除操作對應至自訂存儲過程,提升效能並集中資料庫邏輯。步驟:先在資料庫建立對應的 SP,再於 VS 設計器設定「存儲過程映射」。
CREATE PROCEDURE [dbo].[InsertSuppliers]
@CompanyName nvarchar(40), @ContactName nvarchar(30), @ContactTitle nvarchar(30),
@Address nvarchar(60), @City nvarchar(15), @Region nvarchar(15),
@PostalCode nvarchar(10), @Country nvarchar(15), @Phone nvarchar(24),
@Fax nvarchar(24), @HomePage ntext
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Suppliers(CompanyName,ContactName,ContactTitle,Address,City,Region,
PostalCode,Country,Phone,Fax,HomePage)
VALUES(@CompanyName,@ContactName,@ContactTitle,@Address,@City,@Region,
@PostalCode,@Country,@Phone,@Fax,@HomePage);
SELECT SCOPE_IDENTITY() AS SupplierID;
END
同理建立 UpdateSuppliers、DeleteSuppliers,並在 EDMX 設計器將實體的 Insert/Update/Delete Function 映射至對應 SP。執行 SaveChanges() 時 EF 會自動呼叫這些 SP,並自動處理輸出參數(如新增後的 Identity)。