XPO 是DevExpress出品的一个o/r mapping 组件,在园子里已经介绍过很多了,这里不再赘述。作为一个经常使用的用户,感觉有必要在这里归纳和总结一下从6.1-7.1之间的变化,方便大家做一个了解。
Version 7.1
- XPCollection 和DataSet 互操作 – XPCollection现在可以从类型化的数据集(Typed Datasets)中获取数据表格结构,而无需创建一个XPObjects. 例如,在vs2005设计器中,选择数据->添加新的数据源命令添加一个数据集到您的项目中,然后设置XPCollection.ObjectClassInfo 属性为获取到的数据表。这个 XPCollection 就可以直接操作指定的数据表了.
- 能够在数据库级别开始直接的事务处理. 我们增加了下面几个方法以实现这种支持 ConnectionProviderSql.ExplicitBeginTransaction, ConnectionProviderSql.ExplicitCommitTransaction , ConnectionProviderSql.ExplicitRollbackTransaction.
- 优化Session.Load(XPBaseCollection[]) 重载。请求到某个数据库的数量会在这个方法中被优化。
- InMemoryDataStore 对象现在允许您从一个外部xml文件中读取数据并把变化结果保存回去。例如,您可以用以下语句把一个连接字符串从一个指定的xml文件中读出来: InMemoryDataStore.GetConnectionString("c:\\Data.xml");.
- 增加了 UnitOfWork.ReloadChangedObjects 方法,这个方法允许您从数据源中重新加载发生改变的对象。
- XPBaseCollection.AddRange 方法被优化了,现在它的速度更快了。
- 当一个主键被定义为只读属性的话,会抛出一个异常。
Version 6.3
- ODP.NET 开始支持Oracle了
- UpCasting – 允许在一个单一的查询中合并基类和派生类,不管派生类是否对基类扩展了自己的属性。
- 简化了属性设置 用一套新的简单的方法实现持久类的属性。
Version 6.2
- 支持Medium Trust ,以保证您的应用程序如果使用xpo的话,可以运行在Medium Trust策略之下。
- 支持Microsoft SQL Server Everywhere
- 支持SqlLite 数据库引擎
- 支持XML WebServices.允许应用程序利用远程数据库通过xml web服务提供的数据。
- 简化了语法标准。
Version 6.1
- XpoDefault 类储存了一些全局的设置,如连接字符串等,并且简化了多Session应用的实现.
- 支持了泛型XPCollection<T>,以及相关的帮助方法如 GetCollection<T>.
- 动态运行时扩展(Dynamic runtime extension)
- 如果是用于测试目的并且数据量非常小的话, InMemoryConnectionProvider 使用 DataSet 作为它的存储源,因此 XPO 没有一个真实的数据库后台也能正常工作。
- XPO 6.1 创建的数据库结构能够更加好的被Microsoft SQL Server使用.
- XPCollections 从别的 XPCollections 中创建
- 使用新的选项可以让应用更方便地在MS SQL Server 2005 中使用xpo.
- 无Session持久类(Session-less persistent classes)不必从XPObject派生了.