基于.NET平台的分层架构实战(四)实体类的设计与实现
点击次数:24 次 发布日期:2008-11-21 22:15:57 作者:源代码网
|
大多情况下,实体类和数据库中的表(这里指实体表,不包括表示多对多对应的关系表)是一一对应的,但这并不是一个限制,在复杂的数据库设计中,有可能出现一个实体类对应多个表,或者交叉对应的情况。在本文的Demo中,实体类和表是一一对应的,并且实体类中的属性和表中的字段也是对应的。 在看实体类的代码前,先看一下系统的工程结构。 如上图所示,在初始阶段,整个系统包括6个工程,它们的职责是这样的: Web——表示层 Entity——存放实体类 Factory——存放和依赖注入及IoC相关的类 IBLL——存放业务逻辑层接口族 IDAL——存放数据访问层接口族 Utility——存放各种工具类及辅助类 这只是一个初期架构,主要是将整个系统搭一个框架,在后续开发中,将会有其他工程被陆陆续续添加进来。 我们的实体类将放在Entity工程下,这里包括三个文件:AdminInfo.cs,MessageInfo.cs,CommentInfo.cs,分别是管理员实体类、留言实体类和评论实体类。具体代码如下: AdminInfo.cs: AdminInfo 1using System; 2 3namespace NGuestBook.Entity 4{ 5 /**//// <summary> 6 /// 实体类-管理员 7 /// </summary> 8 [Serializable] 9 public class AdminInfo 10 { 11 private int id; 12 private string name; 13 private string password; 14 15 public int ID 16 { 17 get { return this.id; } 18 set { this.id = value; } 19 } 20 21 public string Name 22 { 23 get { return this.name; } 24 set { this.name = value; } 25 } 26 27 public string Password 28 { 29 get { return this.password; } 30 set { this.password = value; } 31 } 32 } 33} 34 MessageInfo.cs: MessageInfo 1using System; 2 3namespace NGuestBook.Entity 4{ 5 /**//// <summary> 6 /// 实体类-留言 7 /// </summary> 8 [Serializable] 9 public class MessageInfo 10 { 11 private int id; 12 private string guestName; 13 private string guestEmail; 14 private string content; 15 private DateTime time; 16 private string reply; 17 private string isPass; 18 19 public int ID 20 { 21 get { return this.id; } 22 set { this.id = value; } 23 } 24 25 public string GuestName 26 { 27 get { return this.guestName; } 28 set { this.guestName = value; } 29 } 30 31 public string GuestEmail 32 { 33 get { return this.guestEmail; } 34 set { this.guestEmail = value; } 35 } 36 37 public string Content 38 { 39 get { return this.content; } 40 set { this.content = value; } 41 } 42 43 public DateTime Time 44 { 45 get { return this.time; } 46 set { this.time = value; } 47 } 48 49 public string Reply 50 { 51 get { return this.reply; } 52 set { this.reply = value; } 53 } 54 55 public string IsPass 56 { 57 get { return this.isPass; } 58 set { this.isPass = value; } 59 } 60 } 61} 62 CommentInfo.cs: CommentInfo 1using System; 2 3namespace NGuestBook.Entity 4{ 5 /**//// <summary> 6 /// 实体类-评论 7 /// </summary> 8 [Serializable] 9 public class CommentInfo 10 { 11 private int id; 12 private string content; 13 private DateTime time; 14 private int message; 15 16 public int ID 17 { 18 get { return this.id; } 19 set { this.id = value; } 20 } 21 22 public string Content 23 { 24 get { return this.content; } 25 set { this.content = value; } 26 } 27 28 public DateTime Time 29 { 30 get { return this.time; } 31 set { this.time = value; } 32 } 33 34 public int Message 35 { 36 get { return this.message; } 37 set { this.message = value; } 38 } 39 } 40} 41 大家可以看出,实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻辑性内容。源代码网供稿. |
