文档介绍:与 Entity Framework 4-第三篇-使用Entity Framework调用存储过程
LloydSheng 写于 2010年04月26日下午 3:34 | 有5人评论
摘要
本文将向你介绍如何调用存储过程对SQL Server数据库中的数据进行CRUD操作。文中采用的数据库依然是我们在本系列第一篇文章《采用Model-First 开发方式创建数据库》中创建的,使用的Web页面是在第二篇文章《使用Entity Framework 进行CRUD操作》中创建的,可以点击[代码]下载链下载项目文件,要用VS2010打开。
首先需要创建存储过程,ount记录的,代码如下:
CREATE PROCEDURE
AS
SET NOCOUNT ON
SELECT Id, FirstName, LastName, AuditFields_InsertDate,
AuditFields_UpdateDate
FROM ounts
RETURN
ount表中一条记录,代码如下:
CREATE PROCEDURE
(
***@Id int
)
AS
SET NOCOUNT ON
SELECT Id, FirstName, LastName, AuditFields_InsertDate,
AuditFields_UpdateDate
FROM ounts
WHERE Id = ***@Id
RETURN
ounts表中插入一条记录,代码如下:
CREATE PROCEDURE
(
***@FirstName nvarchar(50),
***@LastName nvarchar(50),
***@AuditFields_InsertDate datetime,
***@AuditFields_UpdateDate datetime
)
AS
INSERT INTO ounts (FirstName, LastName, AuditFields_InsertDate,
AuditFields_UpdateDate)
VALUES (***@FirstName, ***@LastName, ***@AuditFields_InsertDate,
***@AuditFields_UpdateDate)
SELECT SCOPE_IDENTITY() AS Id
ount表中的数据,代码如下:
CREATE PROCEDURE
(
***@Id int,
***@FirstName nvarchar(50),
***@LastName nvarchar(50),
***@AuditFields_UpdateDate datetime
)
AS
SET NOCOUNT ON
UPDATE ounts
SET FirstName = ***@FirstName,
LastName = ***@LastName,
AuditFields_UpdateDate = ***@AuditFields_UpdateDate
WHERE Id = ***@Id
RETURN
ount表中的记录,代码如下:
CREATE PROCEDURE
(
***@Id int
)
AS
SET NOCOUNT ON
DELETE
FROM ounts
WHERE Id = ***@Id
RETURN
在我们进行下一步之前,你必须在OrderSystem数据库中创建上面的那些存储过程。
步骤2:将存储过程添加到实体中
。打开后,会出现设计器,同时模型浏览器里可以看到数据库的实体,复杂属性和关系。 Mode From DataBase,这时会出现更新向导,可以看到前面的创建的5个存储过程显示出来。
展开Stored Procedures节点,选择所有存储过程,然后点击完成。这时模型浏览器中会多出5个存储过程对象。
ounts_SelectAll存储过程选择Add Function Import,ounts_SelectAll存储过程的方法了。
选择存储过程执行后的返回值类型,ount列表,而Framework没有提供这种类型,这时采用这个方法创建会很方便。我们可以先创建一个复杂类型用来表示存储过程返回值的类型。由于SelectAll 和 SelectById 两个存储过程返回的字段相同