Object Query Language 使用指南

Object Query Language 使用指南

ID:37711920

大小:121.50 KB

页数:19页

时间:2019-05-29

Object Query Language 使用指南_第1页
Object Query Language 使用指南_第2页
Object Query Language 使用指南_第3页
Object Query Language 使用指南_第4页
Object Query Language 使用指南_第5页
资源描述:

《Object Query Language 使用指南》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ObjectQueryLanguage使用指南基本功能1.ObjectQueryLanguage提供了一种基于对象的查询语言。2.支持OPath语法风格的路径表达式。3.支持属于多个Entity的多列。4.OO风格指定列:如OrderLine.Order.Customer.ContactName。5.支持聚合函数,SQL99标准函数(基于Entity语义)。6.支持列间表达式计算。7.支持Group&Order&As(列别名)8.支持EntityView定义,可以在Query定义中使用已有的EntityView!9.支持名空间的使用,支持中文10.引入from

2、子句,可支持leftjoin,rightjoin,fulljoin,crossjoin11.在select,from,where子句中支持子查询12.用OQL别名指代OPath,使OQL的表达更加简洁13.UDF(UserDefinedFunction)的直接支持。14.union,unionall.15.临时表的支持。16.OQL风格指南17.New!对C风格a?b:c条件表达式和CaseWhen表达式的支持(第5页)18.New!对标准日期时间函数的支持(第6页)19.New!对cast/convert类型转换函数的支持(第7页)20.New!支持Upda

3、te&Delete语句!!!!!!!(第7页)2.优势与比较直接基于实体模型,避免手工执行从实体到表的映射。3.安装将$DevPubRefBusinessUFSoft.UBF.View.Query.dll添加到项目引用中,$DevPubRefBusinessUFSoft.UBF.Business.Adapter.dll,$DevPubRefSystem下UFSoft.UBF.Util.Expression.dll,UFSoft.UBF.Util.dll,UFSoft.UBF.Util.SQLBuilder.dll,UFSoft.UBF.Util

4、.Log.dll,Tools.dll需要拷贝到运行目录。environment.xml中有一新的配置节:/environment/view/creator,如$Dev/PubRef/Business下的environment.xml所示。4.语言指南UBF对象查询语言有两种风格:简单条件过滤与复杂报表查询。简单条件过滤在概念上是针对一个强类型的对象集合指

5、定一个过滤条件,对集合中的每个对象应用此过滤条件进行筛选,结果是所有满足条件的对象所构成的子集合。这种场景主要在UBFBE编程中,由某种BE.Finder.Find(xxx)返回对象集合。复杂报表查询基本上是SQLselect语句在Object-Oriented中的对应物,它用对象的类名,属性名等概念表达SQL中原来用表名,列名来表达的查询概念,但返回的是一个表格状的数据。你可以使用orderby/groupby等SQL类似的语言结构。在BE中有EntityDataQueryAPI,可以获取DataTable或DataReader来对结果进行操纵。由于简单条件

6、过滤仅在原单一类型上过滤/排序,因此可以返回该类型的对象集合,但复杂报表查询可以任意组合不同的对象类型的属性作为返回列,这种组合不对应任意已有的类,因此返回结果是弱类型的表格形式。考虑到与C#风格一致,OQL是大小写敏感的,因此所有的关键字都必须小写。简单形式兼容ObjectSpaceOPath(历史上最早由OPath启发而来),表示查询条件,使用时应当指定对应的主实体,即条件是在该主实体上过滤。OQL表示条件:(仅用在BE.Finder.FindAPI编程中,总是针对实体类型而言。)简单条件:"Customer.ID='ALFKI'",Customer是当前

7、实体的一个属性,类型为Customer,ID是Customer的一个属性,在元源数据中有定义,如Customer映射到Customers表,ID映射为CustomerID列。多EntityJoin条件:"Customer.Order.ShipName=''",QueryEngine将Order视为Customer类的一个属性,仍然没有即报错。最后一列总是属性,此处ShipName是Order实体的属性。OPath风格指定条件:"Customer.Order.ID>100andCustomer.Order.ID!=0",更复杂的路径表达式:"Customer.O

8、rder.OrderLine.Prod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。