您的位置:首页 > 运维架构 > 网站架构

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

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

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

#region对实体层的实现

///<summary>

///实体通用接口

///</summary>

publicinterfaceIDataEntity

{

}

///<summary>

///实体验证接口

///</summary>

publicinterfaceIEntity

{

///<summary>

///实体是否有效,只提供读方法,它直接返回本类某方法的类即可,所以不提供set

///</summary>

boolIsValid{get;}

///<summary>

///验证迭代器

///</summary>

///<returns></returns>

IEnumerable<RuleViolation>GetRuleViolations();

}

///<summary>

///验证类结构

///</summary>

publicclassRuleViolation

{

publicstringErrorMessage{get;privateset;}

publicstringPropertyName{get;privateset;}

publicRuleViolation(stringpropertyName,stringerrorMessage)

{

this.ErrorMessage=errorMessage;

this.PropertyName=propertyName;

}

publicRuleViolation(stringerrorMessage)

{

this.ErrorMessage=errorMessage;

}

}

publicpartialclassDepartment:IDataEntity

{

//初始字段

#regionoriginalfield


///<summary>

///

///</summary>

publicintDeptID{get;set;}


///<summary>

///

///</summary>

publicstringDeptName{get;set;}


///<summary>

///

///</summary>

publicDateTimeCreateDate{get;set;}


///<summary>

///

///</summary>

publicDateTimeUpdateDate{get;set;}


///<summary>

///

///</summary>

publicstringOperator{get;set;}


///<summary>

///上一级ID,最高级别的父ID为0

///</summary>

publicintParentID{get;set;}


#endregion


//外延字段

#regionextensionalfield

#endregion


//构造函数

#regionconstructedfunction


///<summary>

///新建立的时候构造函数

///</summary>

publicDepartment()

{


}


///<summary>

///新建立的时候构造函数

///</summary>

///<paramname="_DeptID"></param>

publicDepartment(Int32_DeptID)

{

this.DeptID=_DeptID;


}


#endregion


//方法

#regionfunction


#endregion


//重写方法

#regionobjectoverrides


#endregion

}


publicpartialclassDepartment:IEntity

{


#regionIEntity成员


publicboolIsValid

{

get{return(GetRuleViolations().Count()==0);}

}


publicIEnumerable<RuleViolation>GetRuleViolations()

{

if(String.IsNullOrEmpty(this.DeptName))

yieldreturnnewRuleViolation("不能为空","DeptName");

if(String.IsNullOrEmpty(this.Operator))

yieldreturnnewRuleViolation("不能为空","Operator");

yieldbreak;

}


#endregion

}


#endregion


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

去感受吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: