Cross-Platform Core Libraries > DevExpress ORM Tool > Main Features
下面是
eXpress Persistent Objects for .NET 的主要功能列表:
·透明且易操控的对象关系映射体系:使用 .NET 反射机制和 XPO 引入的特性功能,XPO 能够将业务对象(business object ) 映射到关系数据库的表,充分支持对象的关联( 一对一、一对多、多对多),聚合和继承。
·生成持久化类:XPO 通过复制指定数据库的架构生成持久化类,该功能可轻而易举将传统关系数据库转换为 eXpress Persistent Object。
·可绑定、可分页的对象集合:使用 XPO.NET,可将获取的持久化对象的集合,很容易地与 UI 控件绑定、分页。
·对象查询:使用 简单的对象语法,可以指定检索、排序和筛选条件,也支持持久化对象的 LINQ 查询。
·XPView 类可以查询对象模型任意组合的计算和聚合的值,它能用于数据绑定,当内存消耗和速度需要优化时,它提供了很好的选择。
·增强型的查询支持包括计算条件,可以用于 XPCollection, XPCollection 和 XPView。
·对已存在的数据库架构的高级支持:XPBaseObject 作为持久化对象的基类,可以将对象映射到已存在的数据库,而无需对数据库架构作任何的变动。
·可共享的无状态的数据访问层( DAL )大幅加速了session 创建的进程,在 ASP.NET 和其他需要缩短缓冲生命周期方面展示了高性能和简易实现的优势。
·全面的数据库的生成和更新:XPO 可以根据持久化对象类的定义生成或更新数据库的表。
·支持各种类型的数据库引擎:XPO 内置支持 MS Access 和 MS SQL Server 数据库,同时也包括 MySQL, Oracle, PostgreSql, Firebird, PervasiveSQL, VistaDB, SQL Anywhere, Advantage, DB2, SQLite, 和 Sybase。这意味着针对这些数据库引擎,无需修改任何代码。
·支持WCF Service:使用指定用于开发的 IDataStore, ICachedDataStore 和 ISerializableObjectLayer 提供程序,可以通过 WCF service 简单地打开持久化对象的通道。
·支持 SqlDependency:XPO 完全支持 SqlDependency。该功能(存在于 Microsoft SQL Server 2005 及后续版本)能够使得数据库服务器向客户端应用程序发送数据变更通知。通过使用该功能,缓存数据的应用程序可决定何时需要刷新其缓存数据。
·带自定义属性的XML 模型:XPO.NET使用抽象的元数据模型替代了.NET反射。.NET 反射的元数据通常借助默认使用的 ReflectionDictionary 获得。XPDictionary 类及其所有的派生类包括 ReflectionDictionary 都有能力提供 XML 数据指定映射信息和自定义属性以通过 .NET 反射来修改数据。
·持久化类的动态运行时扩展提供了在对象模型上的更多灵活性。
·Session-less 持久化类无需派生于 XPObject 就可由 XPO 使用。
·XpoDefault 类存储了全局设置如连接字符串或者共享的DAL,并简化了多会话(multi-session)应用程序的实现。
·高级条件系统:一整套条件操作符可以建立复杂的条件逻辑表达式,用于从数据库中获取对象,包括聚合操作在内。
·对象属性的延迟加载:使用XPO.NET, 可以通过延迟加载特定的属性来提升程序的性能,诸如那些很少使用或者包含大量数据的属性。
·支持事务: XPO.NET 以 Microsoft ADO.NET 所实现的相同方式来支持事务。可以很容易开启事务,然后以适当的 Session 方法,提交或回滚事务。
·使用 Unit of Work 的原理,XPO 可执行半自动化的变更追踪,唯一需要做的是持久化类属性的 set 访问器中调用 SetPropertyValue。
·支持嵌套式 Units of Work。这些封装了某些操作模块并且在父级的范围内可以立即提交或回滚。
·乐观锁机制:更新时支持乐观并发(“先入为主”规则)。
·自定义 Oid:类的属性(所支持的任何数据类型)使用 KeyAttribute 标注后都被当作主键。自动生成的主键支持 System.Int32, System.Int64 和 System.Guid 数据类型。
·精确定义持久化属性或字段所映射的列类型。 - 使用 DbTypeAttribute 为持久化属性或字段所映射的列指定为所提供的特定数据库类型。
·无限大小的字符串字段的显式声明 - 通过指定 SizeAttribute.Unlimited 常量。可以声明无限大小的 Text/Memo 字段。
·自定义类型转换 - 使用类型转换器,可以很容易实现持久化属性的值与数据库的值相互转换。例如,出于加密的目的。
·持久化类模版:提供最简单和最快的方式添加持久化类到项目之中。
·支持 C# Builder, Borland Delphi .NET 和 Mono :XPO 完全兼容于 Borland C# Builder, Borland Delphi.NET 和 Mono C# 编译器。
·Session 和 XPCollection 组件:这些组件允许设置数据源,并在设计阶段绑定到任何可视化组件如表格控件,编辑控件和其他任何数据感知控件
·IBindingList Collection 用法:XPCollection 支持 System.ComponentModel.IBindingList 并且在运行阶段使用该接口在集合中添加或删除项。
·自定义约束与索引: 高级的元数据特性可以为持久化属性或字段指定数据库的索引与约束。通过处理 Session对象的 Session.SchemaInit 事件,可以强制对数据库的任意变更。
· XPBaseObject 的 IEditableObject 用法 :XPBaseObject 支持 IEditableObject 并且使用该接口控制对象的改变。
·先进的事件系统:为了在对象、集合、session 处理过程中执行自定义操作,当 session / 事务状态、collection 内容发生改变甚至是对象对应的底层数据库元数据即将变动,可以使用所触发的相应事件。
·数据库完整性验证:XPO 保持底层数据库的自动更新和完整性,除非选择关闭该功能。
·性能计数器:Microsoft Windows 提供了一种性能监视器,帮助使用实时图表显示资源的使用情况。可以选择需跟踪的值(性能计数器)并按照时间的推移查看数据。如果必要,可以使用该工具分析 XPO 的性能。如果 XPO 安装在机器上,会发现 DevExpress.XPO 等性能计数器目录。
·XPO Profiler(分析器):该工具可以查看底层的 XPO 和评估每个 Session 方法的调用以及在应用程序中执行的数据库请求。
另请参阅