当前位置:主页   - 电脑 - 网站开发 - ASP.Net
ORM框架
来源:网络   作者:   更新时间:2012-08-22
收藏此页】    【字号    】    【打印】    【关闭

  本文示例源代码或素材下载

  很多开源的ORM框架都需要配置,那实在是件很烦人的事情。我以前曾打算学NHibernate,开始还以为.NET的Hibernate应该没JAVA的Hibernate用起来麻烦,结果在网上看了些教材,发觉那是一样的麻烦。说实话,只要是要配置的,我都没心情去做。一般的开源ORM框架都比较重量级的,虽然能满足我的需要,但功能实在是太多太复杂了,我压根儿很难用得上,而且用起来也麻烦,我还不如自己直接写代码来得快呢。我总结了一下平时做的项目,大部分的时候我只需要增、删、改、查这几个基本的功能就行了,其它的什么关联啊什么的,用得很少很少。想来想去,还是自己写个简单易用的ORM框架吧,满足一般的需求就够了。

  许多ORM框架把许多代码都用在了配置和其它一些无用功的方面,这样做虽然更加的具有通用性,但同时也给使用者带来了许多麻烦的工作和性能上的损耗,而且体积也变得很大,代码复杂,难以维护。其实这部分的功能根本就没多大的用处,程序员又不是傻子,何必搞那么多的配置来纠错呢。根据约定优于配置的原则,制定一个规范,只要大家都按照约定的规则来使用就OK了,对于程序员来说,要做到这一点一点也不难。

  我的ORM框架的约定是:

  1,实体类名和数据表名相同。

  2,主键是"表名ID",并且主键是自增的整数。

  3,数据表的字段名和属性名相同。

  4,正确使用。

  只要遵循以上的约定,就可以正确的使用我的ORM框架了。

  创建表的ORM管理:

//创建UserInfo表的管理者,DbConnectionString是数据库连接字符串名,在配置文件中设置
IORMManager<UserInfo> manager = ORMBuilder<UserInfo>.GetORMManager("DbConnectionString");

  有了IORMManager,就可以执行数据操作了。

ORM框架

  要进行条件查询也很简单,通过IORMManager创建过滤器就行了

///创建过滤器
    IFilter filter = manager.CreateFilter("UserName", userName, Operator.Equal);
    UserInfo userInfo = manager.LoadOne(filter);

  复合查询可以通过创建BooleanFilter对多个IFilter进行逻辑合并

IFilter bFilter=manager.CreateBooleanFilter(leftFilter,rightFilter,LogicOperator.And);

  经常会用到的一个比较复杂的查询应该就是分页功能了吧,我的ORM框架对分页也有很好的支持

  ///创建分页器
  IPager<Products> pager = manager.GetPager();
  /// <summary>
  /// 返回第page页的记录
  /// </summary>
  /// <param name="page"></param>
  /// <returns></returns>
  public List<Products> GetProducts(int page)
  {
    return pager.Load(page);
  }
  /// <summary>
  /// 返回总页数
  /// </summary>
  /// <returns></returns>
  public int PageCount()
  {
    return pager.PageCount;
  }

  为数据表写实体类是件很麻烦的事情,尤其是字段特别多的时候,这种苦力活不应该由我们来做啊,太浪费了,所以我写了一个自动生成实体类的小软件,偷懒一下。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明