2024年3月25日发(作者:)

Entity Framework在三层架构中的使用

对应用进行了逻辑分层,各层分别为:界面层(UI),业务逻辑层(BLL)和数据访问层(DAL)。

而在数据交互环境下的实体对象此时将扮演数据访问层(DAL)和业务逻辑层(BLL)数据

传输的对象(DTO)。在以前,可能需要花时间编写DTO的代码,而现在EF4能帮省去

这一部分时间了。

好吧,下面跟随以下步骤一起完成这个应用。

步骤1.创建数据库

为可简单起见,在SQL Server中新建一个OrderSystem数据库,并且创建一个单独的表

UserAccounts,该表的字段如下,注意将Id作为主键,并设置为标识列以便自增。

仍然采用存储过程操作表的数据,创建的存储过程如下:

counts_SelectAll查询表中所有数据

CREATE PROCEDURE [dbo].[UserAccounts_SelectAll]

AS

SET NOCOUNT ON

SELECT Id, FirstName, LastName, AuditFields_InsertDate, AuditFields_UpdateDate

FROM UserAccounts

RETURN

counts_SelectById通过Id查询单条表数据

CREATE PROCEDURE [dbo].[UserAccounts_SelectById]

(

@Id int

)

AS

SET NOCOUNT ON

SELECT Id, FirstName, LastName, AuditFields_InsertDate, AuditFields_UpdateDate

FROM UserAccounts

WHERE Id = @Id

RETURN

counts_Insert插入一条表数据

CREATE PROCEDURE [dbo].[UserAccounts_Insert]

(

@FirstName nvarchar(50),

@LastName nvarchar(50),

@AuditFields_InsertDate datetime,

@AuditFields_UpdateDate datetime

)

AS

INSERT INTO UserAccounts (FirstName, LastName, AuditFields_InsertDate,

AuditFields_UpdateDate)

VALUES (@FirstName, @LastName, @AuditFields_InsertDate,

@AuditFields_UpdateDate)

SELECT CAST(SCOPE_IDENTITY() AS INT) AS Id

counts_Update更新单条表数据

CREATE PROCEDURE [dbo].[UserAccounts_Update]

(

@Id int,

@FirstName nvarchar(50),

@LastName nvarchar(50),

@AuditFields_UpdateDate datetime

)

AS

SET NOCOUNT ON

UPDATE UserAccounts

SET FirstName = @FirstName,

LastName = @LastName,