IEntity /// <summary> /// 定义数据库记录的映射对象接口,该接口为对旬关系映射提供支持,实现本接口的对象映谢为一条数据库记录。 /// </summary> public interface IEntity : EAS.Sessions.ISessionObject, IGetValue, ISetValue, IDataObject, ISerializable { /// <summary> /// 获取IEntity对象所属于的ITable对象的类型。 /// </summary> System.Type TableType { get;} /// <summary> /// 复制一个新的IEntity对象。 /// </summary> /// <returns> Entity 对象的复制。</returns> IEntity DeepClone(); /// <summary> /// 获取IEntity对象的列集合,我们定义了表/行/列的数据表格模型,目前是以表行为结构进行整理的。 /// </summary> ColumnCollection Columns { get;} /// <summary> /// 获取IEntity对象的属性集合,列集合(Columns)的同义词。 /// </summary> ColumnCollection Propertys { get;} /// <summary> /// 获取IEntity对象中的主键集合。 /// </summary> ColumnCollection PrimaryKeys { get;} /// <summary> /// 获取或设置IEntity对象对应的行ID。 /// </summary> System.Data.DataRow DataRow { get;set;} /// <summary> /// 获取一个值,该值指示从上次调用构造函数、Refresh方法以来,内存中的对象属性值是否曾经改变。调用Save 方法后,应该将该属性设置为false。 /// </summary> bool Changed { get ;} /// <summary> /// 获取一个值,该值指示当前对象在数据库中是否存在。默认实现总是返回false。 /// </summary> bool Exists { get ;} /// <summary> /// 实体的状态,即对于数据源来说,指示实现数据是否要同步到数据库。 /// </summary> EntityState State { get; set;} /// <summary> /// 实体所在的表,实体对象可以是独立于表对象、也可依附于一个表对象这上。 /// </summary> ITable Table { get;set;} /// <summary> /// 获取数据对象存储的表的名称。 /// </summary> /// <remarks>该值可以是完全限定名称。名称比较不区分大小写。</remarks> string DbTableName { get; } /// <summary> /// 获取或者设置指定索引位置的属性值。 /// </summary> /// <exception cref="ArgumentException">不存在指定的属性。</exception> /// <exception cref="ArgumentNullException">试图将主键属性的值设置为空值。</exception> /// <remarks>名称比较不区分大小写。</remarks> object this[int index] { get; set;} /// <summary> /// 获取或者设置指定名称的属性值。 /// </summary> /// <exception cref="ArgumentException">不存在指定的属性。</exception> /// <exception cref="ArgumentNullException">试图将主键属性的值设置为空值。</exception> /// <remarks>名称比较不区分大小写。</remarks> object this[string name] { get; set;} /// <summary> /// 获取对象中已经建立的所有属性的数目。 /// </summary> int PropertyCount { get; } /// <summary> /// 获取一个值,该值指示对象是否存在指定名称的属性。 /// </summary> /// <param name="name">要确定的属性的名称。名称比较不区分大小写。</param> /// <returns>返回属性是否存在的指示。</returns> /// <exception cref="ArgumentNullException">name 为空引用或者空字符串。</exception> bool ContainsProperty(string name); /// <summary> /// 获取一个值,该值指示对象是否存在指定标题的属性。 /// </summary> /// <param name="caption">要确定的属性的标题。标题比较不区分大小写。</param> /// <returns>返回属性是否存在的指示。</returns> /// <exception cref="ArgumentNullException">caption 为空引用或者空字符串。</exception> bool ContainsProperty2(string caption); /// <summary> /// 获取指定索引位置处的属性对象。 /// </summary> /// <param name="index">属性索引。</param> /// <returns>返回在对象属性列表中指定位置处的属性对象。</returns> Property GetProperty(int index); /// <summary> /// 获取指定属性名称的属性对象。 /// </summary> /// <param name="name">属性名称。名称比较不区分大小写。</param> /// <returns>返回具有指定名称的Property 对象。</returns> /// <exception cref="ArgumentNullException">name 为空引用或者空字符串。</exception> Property GetProperty(string name); /// <summary> /// 获取指定属性标题的属性对象。 /// </summary> /// <param name="caption">属性标题。名称比较不区分大小写。</param> /// <returns>返回具有指定标题的Property 对象。</returns> /// <exception cref="ArgumentNullException">caption 为空引用或者空字符串。</exception> Property GetProperty2(string caption); /// <summary> /// 保存当前数据对象。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>根据当前数据对象的值更新相应数据库记录的值。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Save(); /// <summary> /// 插入当前数据对象。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>根据当前数据对象的值向数据库插入一条数据库记录。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Insert(); /// <summary> /// 更新当前数据对象。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>根据当前数据对象的值更新相应数据库记录的值。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Update(); /// <summary> /// 刷新当前数据对象。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>从数据库中加载当前数据对象的值。</remarks> void Refresh(); /// <summary> /// 缓存刷新,根据实体对象依附的表对象缓存刷新实体数据。 /// </summary> void CacheRefresh(); /// <summary> /// 实在是否在数据库存在。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>从数据库中加载当前数据对象的值。</remarks> void ExistsInDb(); /// <summary> /// 从数据库中删除当前数据对象(对应的数据库记录)。 /// </summary> /// <exception cref="InvalidOperationException"> DbConnection 为空引用、DbTableName 为空、还没有定义对象的属性、还没有定义对象的主键属性(更新时)、或者主键属性的值为空值。</exception> /// <remarks>删除后仍然可以使用Save 方法将对象再次保存到数据库。</remarks> void Delete(); }
ITable /// <summary> /// 定义数据表接口,该接口为对旬关系映射提供支持。 /// </summary> /// <remarks>此按口定义了对象关系映射中有关于数据表的描述。</remarks> public interface ITable : EAS.Sessions.ISessionObject, System.ComponentModel.IListSource, IDataObject, ISerializable { /// <summary> /// 获取或设置包含有特定数据的对象。 /// </summary> object Tag { get;set;} /// <summary> /// 获取ITable 对象拥有的IEnrity 对象的类型。 /// </summary> System.Type EntityType{ get;} /// <summary> /// 获取Table对象的列集合,我们定义了表/行/列的数据表格模型,目前是以表行为结构进行整理的。 /// </summary> ColumnCollection Columns { get;} /// <summary> /// 获取Table对象中的实体记录集(Entity集合),我们定义了表/行/列的数据表格模型。 /// </summary> EntityCollection Rows { get;} /// <summary> /// 获取Table对象中的主键集合。 /// </summary> ColumnCollection PrimaryKeys { get;} /// <summary> /// 获取数据对象存储的表的名称。 /// </summary> /// <remarks>该值可以是完全限定名称。名称比较不区分大小写。</remarks> string DbTableName { get; } /// <summary> /// 获取一个值,指定数据表中的数据是否发生改变,如果发生改变,则会考虑数据是否同步到数据源中。 /// </summary> bool Changed { get;} /// <summary> /// 获取一个值,指示集合中已经修改过的Entity 对象总数,即此数据表对象所包含的数据行数。 /// </summary> int ChangedCount{ get;} /// <summary> /// 获取或设置表中数据实体对象的数据存储方式。 /// </summary> StorageMode StorageMode{get;set;} /// <summary> /// 获取进行数据操作的数据访问对象,此处的数据库访问对像可能会是不同的访问对象,数据库访问环境、数据库访问者、分布式数据访问对象等。 /// </summary> EAS.Data.Access.IDataAccessor DataAccessor { get; set;} /// <summary> /// 获取表中指定行索引处的实体。 /// </summary> IEntity this[int index] { get;} #region 数据/缓存表 /// <summary> /// 获取与表对象对应的数据集对象。 /// </summary> System.Data.DataTable DataTable { get;} /// <summary> /// 获取与表对象对应的数据集对象(缓存)。 /// </summary> System.Data.DataTable CacheDataTable { get;} #endregion /// <summary> /// 创建数据查询条件。 /// </summary> /// <returns>为表成功创建的一个条件对象。</returns> Condition CreateCondition(); /// <summary> /// 创建一条新记录,没有同步到数据库。 /// </summary> /// <returns>为本成功成功创建的行实体对象。</returns> IEntity CreateEntity(); /// <summary> /// 向表中添加一条记录,没有同步到数据库。 /// </summary> /// <param name="enrity">数据实体对象。</param> void AddEntity(IEntity enrity); /// <summary> /// 更新表中的一条记录,没有同步到数据库。 /// </summary> /// <param name="enrity"> Entity 对象。</param> void UpdateEntity(IEntity enrity); /// <summary> /// 更新表中的一条记录,没有同步到数据库。 /// </summary> /// <param name="index"> Entity 对象在集合中的索引。</param> void UpdateEntity(int index); /// <summary> /// 删除表中的一条记录,没有同步到数据库。 /// </summary> /// <param name="enrity"> Entity 对象。</param> void DeleteEntity(IEntity enrity); /// <summary> /// 删除表中的一条记录,没有同步到数据库。 /// </summary> /// <param name="index"> Entity 对象在集合中的索引。</param> void DeleteEntity(int index); /// <summary> /// 从数据库中删除数据表记录。 /// </summary> /// <remarks>删除操作所影响的数据行数。</remarks> int Delete(); /// <summary> /// 从数据库中删除数据表记录。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <remarks>删除操作所影响的数据行数。</remarks> int Delete(Condition condition); /// <summary> /// 查询,从数据库读取Table 对象所对应数据库实体数据,刷新同步数据表对象源到数据库对象表。 /// </summary> void Query(); /// <summary> /// 查询,从数据库读取Table 对象所对应数据库实体数据,刷新同步数据表对象源到数据库对象表。 /// </summary> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> void Query(int top); /// <summary> /// 条件查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> void Query(Condition condition); /// <summary> /// 条件查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> void Query(Condition condition,int top); /// <summary> /// 缓存查询,从当前数据表缓存查询实体数据。 /// </summary> void CacheQuery(); /// <summary> /// 缓存查询,从当前数据表缓存查询实体数据。 /// </summary> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> void CacheQuery(int top); /// <summary> /// 缓存查询,从当前数据表缓存查询指定条件的实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> void CacheQuery(Condition condition); /// <summary> /// 缓存查询,从当前数据表缓存查询指定条件的实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> void CacheQuery(Condition condition,int top); /// <summary> /// 使用本表缓存刷新指定的实体对象。 /// </summary> /// <param name="entity">本表对应的实体对象。</param> void CacheRefresh(IEntity entity); /// <summary> /// 查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetDataTable(); /// <summary> /// 查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetDataTable(int top); /// <summary> /// 条件查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetDataTable(Condition condition); /// <summary> /// 条件查询,从数据库读取Table 对象所对应数据库实体数据。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetDataTable(Condition condition,int top); /// <summary> /// 缓存查询,从表中缓存(DataTable)的数据表记录中查询。 /// </summary> /// <returns>返回缓存的数据表对象。</returns> System.Data.DataTable GetCacheDataTable(); /// <summary> /// 缓存查询,从表中缓存(DataTable)的数据表记录中查询。 /// </summary> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetCacheDataTable(int top); /// <summary> /// 缓存查询,从表中缓存(DataTable)的数据表记录中查询。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetCacheDataTable(Condition condition); /// <summary> /// 缓存查询,从表中缓存(DataTable)的数据表记录中查询。 /// </summary> /// <param name="condition">数据查询条件,为空引用则返回整个数据库实体(表、视图、表值存储过程)。</param> /// <param name="top">Top查询,即一次最多返回多少条数据记录,返回多少个数据实体。</param> /// <returns>查询返回的数据表对象。</returns> System.Data.DataTable GetCacheDataTable(Condition condition,int top); /// <summary> /// 保存当前数据,即把表中变更过的数据同步到数据库,不使用事务。 /// </summary> /// <remarks>根据当前数据对象的值更新相应数据库记录的值。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Save(); /// <summary> /// 保存当前数据,即把集合中的数据同步到数据库,不使用事务。 /// </summary> /// <param name="force">是否强制同步到数据库。</param> /// <remarks>根据当前数据对象的值更新相应数据库记录的值。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Save(bool force); /// <summary> /// 保存当前数据,即把集合中的数据同步到数据库。 /// </summary> /// <param name="force">是否强制同步到数据库。</param> /// <param name="transaction">数据同步过程中是否使用事务。</param> /// <remarks>根据当前数据对象的值更新相应数据库记录的值。如果没有为对象添加任何属性,则不会产生任何效果。</remarks> void Save(bool force,bool transaction); /// <summary> /// 根据索引及指定长度取得表中部分记录,组成一个新表。 /// </summary> /// <param name="startIndex">索引开始位置。</param> /// <param name="length">需要取得的实体数。</param> /// <returns>结果实体组成的新表。</returns> ITable GetRangeTable(int startIndex,int length); }
ElementType /// <summary> /// Condition 类的数据元素(Element)类型枚举。 /// </summary> public enum ElementType { /// <summary> /// “=”比较指定值与指定属性 /// </summary> EqualTo = 0x00000000, /// <summary> /// “>”比较指定值与指定属性 /// </summary> GreaterThan = 0x00000001, /// <summary> /// “>=”比较指定值与指定属性 /// </summary> GreaterThanAndEqualTo = 0x00000002, /// <summary> /// “(不等于)”"比较指定值与指定属性 /// </summary> NotEqualTo = 0x00000003, /// <summary> /// “(小于)”比较指定值与指定属性 /// </summary> LessThan = 0x00000004, /// <summary> /// “小于等于”"比较指定值与指定属性 /// </summary> LessThanAndEqualTo = 0x00000005, /// <summary> /// (BetWeen),介于两个介之间。 /// </summary> BetWeen=0x00000010, /// <summary> /// (NotBetWeen),不介于两个介之间。 /// </summary> NotBetWeen=0x00000020, /// <summary> /// 指定子字符串与指定属匹配(模式匹配%value%) /// </summary> Match = 0x00000100, /// <summary> /// 指定子字符串与指定属匹配(前缀匹配value%) /// </summary> MatchPrefix = 0x00000200, /// <summary> /// 指定子字符串与指定属匹配(后缀匹配%value) /// </summary> MatchSuffix = 0x00000300, /// <summary> /// 指定子字符串与指定属不匹配(%value%)。 /// </summary> NotMatch = 0x00000400, /// <summary> /// 指定子字符串与指定属不匹配(前缀不匹配value%)。 /// </summary> NotMatchPrefix = 0x00000500, /// <summary> /// 指定子字符串与指定属不匹配(后缀不匹配%value)。 /// </summary> NotMatchSuffix = 0x00000600, /// <summary> /// 指定子字符串中的字匹配(字匹配value__value)。 /// </summary> WordMatch = 0x00000700, /// <summary> /// 指定子字符串中的字不匹配(字匹配value__value)。 /// </summary> NotWordMatch = 0x00000800, /// <summary> /// 与给定的列表list里的值匹配。 /// </summary> In = 0x00001000, /// <summary> /// 与给定的列表list里的值不匹配。 /// </summary> NotIn = 0x00002000, /// <summary> /// 直接构造字符串,传入就是条件元素。 /// </summary> SqlCondition = 0x00008000 }
/// <summary> /// Condition 类的数据元素(Element)之间的组合方法。 /// </summary> public enum ElementCombineType { /// <summary> /// And,两个Element 对象之间是以And 为组合条件。 /// </summary> And = 0x0000, /// <summary> /// Or,两个Element 对象之间是以Or 为组合条件。 /// </summary> Or = 0x0001 }
0人
|
了这篇文章 |
点击图片可刷新验证码请点击后输入验证码博客过2级,无需填写验证码
同时赞一个