现在的位置: 首页 > 综合 > 正文

发布一个O/R M组件(开源)

2012年07月15日 ⁄ 综合 ⁄ 共 2119字 ⁄ 字号 评论关闭

    很早前就已经有计划去做这样一个组件了(有部分地方是参考nhibernate的.
可能有些人会问nhibernate很不错为什么还要自己写一个?写得过程中可以学到很多东西的!
当然组件并没有nhibernate那么强大,代码量也远远不及nhibernate只有几千行);
由于工作关系和自己又是比较懒惰的人,所以到现在才完成大概的功能.
本来打算进一步完善后才把组件开源的,可惜工作和惰性原因:)不知道什么时候才完成.
所以在这里把组件公开,如果有兴趣的朋友对它进行修改和完善(注意:使用前请看下协议文件).
   
HFSOFT.DATA的目的主要是方便开发人员快速简单地完成数据操作,从而提高开发效率。
--现在版本所支持的功能有:
    1.多数据库支持
      暂时提供SQLServer,Access,Oracle数据库提供者.
      可以通过IDriver实现新数据库提供者。
    2.支持对象映射操作
      对象添加
      对象修改
      对象查询
    3.支持对象关系获取
      子对象无限层次的获取,暂时只支持IList接口
      父对象一层获取,支持对应类型的实体对象
      暂时不支持关系对象更新操作
    4.支持对象查询条件
      提供的查询对象有:=,<>,>,>=,<,<=,like,In,NotIn,BETWEEN,Not BETWEEN
    5.支持直接SQL的参数化查询
    6.支持直接Command执行
    7.支持IList,DataSet数据集获取
    8.支持事务
--后续版本完善的功能
    记录操作日志跟踪,可以根据自己的情况来实现日志操作类.
    关系对象获取的改进,实现可指定获取相应的关系对象包括(不获取,获取所有,获取父,获取子,获取指定类型等);
    关系对象更新操作,同样实现可指定类型更新.
    命令对象缓存
    实体对象缓存(还在想同步方案)
    记录集缓存
--具体调用功能方法描述
    - IDataReader ExecuteReader(IDbCommand cmd);
 执行命令对象并返回一个数据读取对象

    - object ExecuteScalar(IDbCommand cmd);
 执行命令对象并返回一个对象值

    - int ExecuteNonQuery(IDbCommand cmd);
 执行命令对象并返回受影响的记录数

    - DataSet ExecuteDataSet(IDbCommand cmd);
 执行命令对象并返回一个数据集对象

    - void ExcuteCmds(params IDbCommand[] cmd);
 批执行命令对象

    - void Open();
 打开数据库连接

    - void Close();
 关闭数据库连接

    - void BeginTran();
 打开数据库事务

    - void Commit();
 提交事务

    - void RoolBack();
 回滚事务

    - void Delete(object entity);
 删除指定的实体对象

    - void Save(object entity);
 添加指定的实体对象
 
    - void Update(object entity);
 更新指定的实体对象

    - object Load(Type type, object id);
 获取指定类型索引的实体对象

    - IList List(Type type, IExpression expression);
 根据条件对象获取相应类型的对象集

    - IList List(Type type, string query, object[] values);
 根据参数化的SQL查询条件获取相应类型的对象集

    - void DeleteObjects(Type type, IExpression expression);
 根据条件对象删除相应类型的对象集

    - void DeleteObjects(Type type, string query, object[] values);
 根据参数化的SQL查询条件删除相应类型的对象集

    - DataSet ListDS(Type type, IExpression expression);
 根据条件对象获取相应类型的数据集

    - DataSet ListDS(Type type, string query, object[] values);
 根据参数化的SQL查询条件获取相应类型的数据集

    - void UpdateObjects(Type type, FieldCollection fields, IExpression expression);
 根据条件对象更新指定类型的字段信息

    - void UpdateObjects(Type type, FieldCollection fields, string query, object[] values);
 根据参数化的SQL查询条件更新指定类型的字段信息

    - IQuery CreateQuery();
 获取一个查询对象

下载应用事例和源码
如果有兴趣交流的朋友可以发邮件henryfan@msn.comhenryfan28@gmail.com

抱歉!评论已关闭.