2013年12月16日 星期一

[Entity Framework] 使用預存程序更新資料


1.  建立一個如下的表格
CREATE
TABLE [dbo].[JB_USER_D](
       [USER_ID] [varchar](10) NOT NULL,
      
 [USER_PWD] [varchar](10) NULL,         
       CONSTRAINT [JB_USER_D_I01] PRIMARY KEY CLUSTERED ([USER_ID])
      )


2.  新增資料
INSERT INTO JB_USER_D VALUES('XMAN','1234')

3.  新增一個Store procedure
CREATE PROCEDURE [dbo].[SP_Update]
 (
      
@USER_ID        varchar(10),
      
@USER_PWD  varchar(10)
)
AS
UPDATE JB_USER_D
SET USER_PWD=@USER_PWD
WHERE USER_ID=@USER_ID
RETURN
GO

4.  Visual Studio 加入一個實體資料模型






5.  在實體資料模型加入剛才建立的表格以及預存函式






6.  Entity framework 5以上的版本,設定好以上後,EF便會自動幫我們建立一個使用這個SPfunction
開啟[模型名稱].Context.cs就會看到這個函式,可以直接用了。



7.  也可以使用「函式匯入」的方式建立fuction
1.1  在資料模型中 空白處右鍵 「加入新項目」「函式匯入」



1.2  設定我們的函式名稱在「函式匯入名稱」,SP選擇方才匯入的SP_Update



1.3  設定完成,可以在模型瀏覽器看到「函式匯入」的部分多了一個MyUpdate,原本的SP_Update就可以刪除了。




1.4  可以回去[模型名稱].Context.cs看一下改變。

8.  主程式:
MyEntities entity = new MyEntities();
string Id = "Xman";
string newPwd = "888888";
entity.MyUpdate(sUpt_USER_ID, sNew_USER_PWD);



9.  執行程式後,可以看到SP確實被執行了~ 資料表裡的密碼被更新了。








沒有留言:

張貼留言