实体的持久化状态
1.读状态(Read) 数据从数据库中读取到实体中,在程序运行期间,实体未被修改过的。
2.脏状态(Dirty) 数据从数据库中读取到实体中,在程序运行期间,实体的某些属性被修改过了,这意味着,持久化时
,该实体被修改的属性(或者所有属性)的值需要更新到数据库中。
3.删除状态(Delete) 数据从数据库中读取到实体中,在程序运行期间,实体被删除了。这意味着,持久化时,需要在数据库中
删除对应的记录。
4.销毁状态(Destory) 实体直接在程序中创建并且在程序运行期间被删除的。这意味着,该实体可以直接被丢弃,无需要更新到数据库中。
5.创建状态(New) 实体直接在程序中创建。这意味着,持久化时,应该根据实体的属性在数据库中插入一条记录。
6.所有状态(All) 所有的实体状态。所有状态=读状态|脏状态|删除状态|销毁状态|创建状态
7.当前状态(Current) 实体还仍然存在的一组状态。当前状态=读状态|脏状态|创建状态
数据持久化设计
将一组属性和方法封装在基类中,所有的实体都继承自该类。基类应该提供的属性和方法如下

Code
/// <summary>
/// 实体的持久化的状态
/// </summary>
public PersistenceStatus _Status{get;set;}
/// <summary>
/// 持久化状态是否为读
/// </summary>
public bool _IsRead{get;}
/// <summary>
/// 持久化状态是否为修改
/// </summary>
public bool _IsDirty{get;}
/// <summary>
/// 持久化状态是否为删除
/// </summary>
public bool _IsDelete{get;}
/// <summary>
/// 持久化状态是否为销毁
/// </summary>
public bool _IsDestory{get;}
/// <summary>
/// 持久化状态是否为新增
/// </summary>
public bool _IsNew{get;}
/// <summary>
/// 持久化状态是否为Read、New、Modified中的任意一个或组合
/// </summary>
public bool _IsCurrent{get;}
/// <summary>
/// 更改实体属性时,调用该方法改变持久化状态
/// </summary>
/// <returns></returns>
public PersistenceStatus _Modify(){}
/// <summary>
/// 删除实体时,调用该方法改变持久化状态
/// </summary>
/// <returns></returns>
public PersistenceStatus _Delete(){}
/// <summary>
/// 实体被修改事件
/// </summary>
public event EntityModifiedEventHandler OnModify;
/// <summary>
/// 实体被删除事件
/// </summary>
public event EntityDeletedEventHandler OnDelete;