Ndo v3.1发布了!

这次增加的新功能有:

1.Oracle数据库支持(使用System.Data.OracleClient或ODP.NET驱动程序都可以)

2.支持Oracle的如下现实:

  1)Sequence生成自增PK

  2)CUD By 存储过程

  3)数据库分页

3.涵盖了所有ADO.NETAPI的ISqlHelper操作接口.将SqlHelper和OracleHelper整合在一起,使用Session现实,这样你的代码可以独立于具体的数据库.

4.Session自动管理,借鉴了NH中的Session管理方式,Ndo内置四种管理策略:

   1).  Per Web Request(用于B/S架构中,一次客户端会话,一个连接)
   2).Per Process(用于单线程C/S程序,一个进程/App连接一次)
   3).Per Thread(用于多线程C/S程序,一个线程一次连接)
   4).Per Unit of Work(也就是Per call,适用于各种运行环境,一次工作单元一次连接)

5.工具类EntityConverter<T>,将Ado.NET数据(DataReader, DataTable, DataSet)转换为实体类。支持Ndo Attribute和自动按名称Mapping方式转换.

6.一个Web项目,Demo如何使用新的Ndo

 

旧功能修改:

1.不再允许用户建立SimpleDao<T>的实例,以免Session管理混乱.将构造器改成了Internal

2.提供了Configuration.AddConnection(connectionNameInConfig),给个conn string的name就行了,Ndo自动检查Dirver.

3.PostShparp版本升级到1.5.*(LazyLoad用的)

4.更新了单元测试的代码.增加了一个多线程测试程序.

5.大写NDO->小写Ndo.统一名称.

目前存在的问题:

1.HasMany只能在[LazyLoad]时有效,不过不影响使用

2.BelongsTo设置[LazyLoad]没用.

预览界面:

Unit Testing 使用 Oracle的ODP.NET 数据驱动

ndo

SQL Server 2005性能测试数据:

注意ActiveRecord底层使用NHibernate2.x,所以你可以将它看做NHibernate.

Ndo2

Oracle 10g性能测试数据(注意Server 内存有2G,所以快很多):

ndo4

Demo Web Site

ndo3

Ndo和Nhibernate的选择:

1.中小项目,不需要分布式的,对数据库移植没要求的,用Ndo.如果要支持多数据库,用NHibernate.分布式中使用ORM本来就不太适合,会影响整体的性能和伸缩性,用Xml + DataSet最好,就是所谓有的大粒度的API.

2.如果对Nhibernate掌握的不深,感觉做项目有风险的,建议用Ndo,怎么说Ndo是我们自己开发的,每一行代码心里有数.

3.想做到很灵活,可以配置HQL, SQL的用NHibernate.

4.如果要提高性能的,用Ndo + SP.

5.Ndo不支持的数据库,如Sql CE, Sqlite(以后会加上支持),用Nhibernate.

6.不想配置hbm.xml的,对继承不敏感的,用Ndo

7.不想自己处理数据库连接的,用Ndo Session Manager和ISqlHelper操作接口,再配合EntityConverter,也可以现实简单的OO

8.想非常OO的,或者你的类有自己的基类,不能使用NdoRecordBase的,用Nhibernate

原文地址:https://www.cnblogs.com/rockniu/p/1601666.html