Welcome

首页 / 软件开发 / .NET编程技术 / 基于.NET平台的分层架构实战(九)—数据访问层的第三种实现:基于NBear框架

基于.NET平台的分层架构实战(九)—数据访问层的第三种实现:基于NBear框架2010-11-18 cnblogs leoo2sk T2基于.NET平台的分层架构实战(九)—数据访问层的第三种实现:基于NBear框架的ORM实现

前面的文章讨论了使用SQL语句和存储过程两种数据访问层的实现方式,这一篇里,将讨论使用ORM方式实现数据访问层的方法。

对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

目前.NET平台上有许多ORM框架可供选择,如NBear、NHibernate等等。这里我们选择NBear实现ORM。

NBear是由博客园的Teddy"s Knowledge Base团队开发的一个开源框架,主要用来提高.NET平台的开发效率,其中包含了ORM、IoC、MVP等多个组件,这里仅仅用到其中的ORM功能。关于NBear的详细使用方法本文不再详述,请参考NBear入门教程。NBear的最新版本下载地址为http://files.cnblogs.com/hjf1223/NBearV3.7.2.11_src.rar。

下面我们一步一步实现数据访问层的ORM实现。

1.创建实体设计工程

使用NBear实现ORM功能,首先要创建一个实体设计工程,这个工程最终不会应用到系统中,但是必须通过它来生成NBear实体类以及配置文件。

首先,我们在解决方案下新建一个工程,名字为NBearEntityDesign,并为这个工程添加到文件NBear.Common.Design.dll的引用,这个文件在NBear文件包的dist目录下。

完成后,在这个工程下新建一个C#文件,名为EntityDesign.cs,这个文件就是设计文件,根据对实体和数据库的设计,编写完整代码如下:

EntityDesign.cs

1using System;
2using System.Collections.Generic;
3using System.Text;
4using NBear.Common.Design;
5
6namespace NGuestBook.NBearEntityDesign
7{
8 public interface TAdmin : Entity
9 {
10 [PrimaryKey]
11 int ID { get; }
12 [SqlType("nvarchar(20)")]
13 string Name { get; set; }
14 [SqlType("nvarchar(50)")]
15 string Password { get; set; }
16 }
17
18 public interface TComment : Entity
19 {
20 [PrimaryKey]
21 int ID { get; }
22 [SqlType("ntext")]
23 string Content { get; set; }
24 DateTime Time { get; set; }
25 int MessageID { get; set; }
26 }
27
28 public interface TMessage : Entity
29 {
30 [PrimaryKey]
31 int ID { get; }
32 [SqlType("nvarchar(20)")]
33 string GuestName { get; set; }
34 [SqlType("nvarchar(100)")]
35 string GuestEmail { get; set; }
36 [SqlType("ntext")]
37 string Content { get; set; }
38 DateTime Time { get; set; }
39 [SqlType("ntext")]
40 string Reply { get; set; }
41 [SqlType("nvarchar(10)")]
42 string IsPass { get; set; }
43 }
44}