大家一起来学习一下面向对象的三层架构吧!今天我来说说Entity有时也叫MODEL实体层!...

实体层,事实上就是数据库的对象化,把数据表抽象化,目前有很多这方面的工具,我们把这些工具称为ORM工具,即对象关系模型,microsoft在进入3.5时代后引入了LINQ的概念,LINQ的出现,大大提高了开发人员工作效率,它把传统的数据库直接对象了,并以IQueryable<T>的形式被以提供访问,它被称为是可查询的结果集,我们也可以把它理解为是一个VS项目里的数据库.

不说费话了,还是看看我的实体设计吧!

  1:  #region 对实体层的实现
  2:      /// <summary>
  3:      /// 实体通用接口
  4:      /// </summary>
  5:      public interface IDataEntity
  6:      {
  7:      }
  8:      /// <summary>
  9:      /// 实体验证接口
 10:      /// </summary>
 11:      public interface IEntity
 12:      {
 13:          /// <summary>
 14:          /// 实体是否有效,只提供读方法,它直接返回本类某方法的类即可,所以不提供set
 15:          /// </summary>
 16:          bool IsValid { get; }
 17:          /// <summary>
 18:          /// 验证迭代器
 19:          /// </summary>
 20:          /// <returns></returns>
 21:          IEnumerable<RuleViolation> GetRuleViolations();
 22:      }
 23:      /// <summary>
 24:      /// 验证类结构
 25:      /// </summary>
 26:      public class RuleViolation
 27:      {
 28:          public string ErrorMessage { get; private set; }
 29:          public string PropertyName { get; private set; }
 30:          public RuleViolation(string propertyName, string errorMessage)
 31:          {
 32:              this.ErrorMessage = errorMessage;
 33:              this.PropertyName = propertyName;
 34:          }
 35:          public RuleViolation(string errorMessage)
 36:          {
 37:              this.ErrorMessage = errorMessage;
 38:          }
 39:      }
 40:      public partial class Department : IDataEntity
 41:      {
 42:          //初始字段
 43:          #region original field
 44:   
 45:          /// <summary>
 46:          /// 
 47:          /// </summary>
 48:          public int DeptID { get; set; }
 49:   
 50:          /// <summary>
 51:          /// 
 52:          /// </summary>
 53:          public string DeptName { get; set; }
 54:   
 55:          /// <summary>
 56:          /// 
 57:          /// </summary>
 58:          public DateTime CreateDate { get; set; }
 59:   
 60:          /// <summary>
 61:          /// 
 62:          /// </summary>
 63:          public DateTime UpdateDate { get; set; }
 64:   
 65:          /// <summary>
 66:          /// 
 67:          /// </summary>
 68:          public string Operator { get; set; }
 69:   
 70:          /// <summary>
 71:          /// 上一级ID,最高级别的父ID为0
 72:          /// </summary>
 73:          public int ParentID { get; set; }
 74:   
 75:          #endregion
 76:  
 77:          //外延字段
 78:          #region extensional field
 79:          #endregion
 80:  
 81:          //构造函数
 82:          #region constructed function
 83:   
 84:          /// <summary>
 85:          /// 新建立的时候构造函数
 86:          /// </summary>
 87:          public Department()
 88:          {
 89:   
 90:          }
 91:   
 92:          /// <summary>
 93:          /// 新建立的时候构造函数
 94:          /// </summary>
 95:          /// <param name="_DeptID"></param>
 96:          public Department(Int32 _DeptID)
 97:          {
 98:              this.DeptID = _DeptID;
 99:   
100:          }
101:   
102:          #endregion
103:  
104:          //方法
105:          #region function
106:   
107:          #endregion
108:  
109:          //重写方法
110:          #region object overrides
111:   
112:          #endregion
113:      }
114:   
115:      public partial class Department : IEntity
116:      {
117:   
118:          #region IEntity 成员
119:   
120:          public bool IsValid
121:          {
122:              get { return (GetRuleViolations().Count() == 0); }
123:          }
124:   
125:          public IEnumerable<RuleViolation> GetRuleViolations()
126:          {
127:              if (String.IsNullOrEmpty(this.DeptName))
128:                  yield return new RuleViolation("不能为空", "DeptName");
129:              if (String.IsNullOrEmpty(this.Operator))
130:                  yield return new RuleViolation("不能为空", "Operator");
131:              yield break;
132:          }
133:   
134:          #endregion
135:      }
136:   
137:      #endregion

看清楚了吧,我们的实体是由两部分组成了,即"实体的基本属性"和"实体的验证机制"哈哈

去感受吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
. Net三层架构是一种常用的软件开发模式,它将应用程序按照不同的职责划分为三个独立的:表示(UI)、业务逻辑(BLL)和数据访问(DAL)。 表示是应用程序的用户界面,用于展示和接收用户的操作。可以使用ASP.Net、WinForm或者WPF等技术来开发UI的代码。在这一,我们通常会实现页面布局、用户输入验证、用户交互等功能。UI将用户请求传递给业务逻辑来处理,并将结果返回给用户。 业务逻辑是应用程序的核心,处理业务逻辑和算法。在这一,我们可以编写一些实现业务逻辑的方法和函数,处理来自用户界面的请求,对数据进行处理、验证和计算,并调用数据访问来获取或更新数据。BLL的代码通常包括各种业务规则、验证逻辑和计算等。 数据访问负责与数据库进行交互,提供数据的读取、写入和更新功能。我们可以使用ADO.Net、Entity Framework或者Dapper等技术来开发DAL的代码。DAL的代码用于连接数据库、执行SQL查询,以及将结果返回给业务逻辑进行处理。数据访问的代码通常会使用ORM(对象关系映射)工具来简化数据操作。 通过将应用程序按照这种三层架构进行划分,可以实现分离界面和业务逻辑,提高代码的可维护性和可扩展性。每一都有各自的职责和功能,使得代码更加清晰和易于理解。同时,三层架构也有助于实现代码的重用和单元测试,提高开发效率和软件质量。这种开发模式在许多大型复杂的软件系统中被广泛采用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值