当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 基于.NET平台的分层架构实战(四)实体类的设计与实现

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

ASP.NET 中的 基于.NET平台的分层架构实战(四)实体类的设计与实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 78 ::
收藏到网摘: n/a

实体类是现实实体在计算机中的表示。它贯穿于整个架构,负担着在各层次及模块间传递数据的职责。一般来说,实体类可以分为“贫血实体类”和“充血实体类”,前者仅仅保存实体的属性,而后者还包含一些实体间的关系与逻辑。我们在这个Demo中用的实体类将是“贫血实体类”。
  
   大多情况下,实体类和数据库中的表(这里指实体表,不包括表示多对多对应的关系表)是一一对应的,但这并不是一个限制,在复杂的数据库设计中,有可能出现一个实体类对应多个表,或者交叉对应的情况。在本文的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
   大家可以看出,实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻辑性内容。