OpenAccess的核心:*.rlinq

本文发布时间: 2019-Mar-22
OpenAccess ORM 的核心,就是 *.rlinq,也就是所谓的 Model。在 VS2012 中,我们会透过可视化设计画面来建立内容,但其实 rlinq 是一个 XML 格式的档案,所以我们可以用文字编辑器开启它,检视其内容。为了方便说明,我们就使用前一篇文章,最后的范例画面之 rlinq 来解说结构。开始说明前,您是不是有疑惑:为什么我们需要知道 rlinq 结构?透过可视化设计不就可以搞定一切了吗?答案是:【理论上】透过可视化设计的确可以完成 Model 的设定,但【实际】应用时,偶尔还是要用文字编辑器处理一下 rlinq 档案,例如:从 Model 中移除 Entity 但 rlinq 中没有清除干净,就必须手动清,或者为无主键的 Table 设定对象识别属性。※ 纯文字编辑器我都是用 Notepad++,因为可以着色和收合程序代码区块,内建的记事本太难用了。另一个问题:要了解到多细节?其实不需要了解到很细节,因为太细节的部分手动调整通常一定会错!主要还是在了解 ORM 的部分。ORM 框架最重要的就是把 DB Schema 和 Class Object 对应起来,所以在 rlinq 中,一定会有这个部分,这就是我们要了解的地方。好,现在用文字编辑器开启上图所对应的 rlinq 档,先看大范围:可以发现,分别四个区块:<orm>:重点区块,记录 DB Schema 和 Class Object 的对应关系和字段、属性的对应,还包含了型别的对应。<ModelSettings>:顾名思义,就是我们在建立 rlinq 时所做的相关设定。这个区段只有一个地方要注意,就是里面会有联机字符串。<Types>:每个 Entity 的属性(Attritube)数据。<domainContext>:记录 Model 中有那些 Entity。所以最重要的部分,其实就是 <orm>。这区块下还可以再看到子阶层:<orm:class>:Model 中的 Entity Class 数据,以及此 Entity 所对应的 DB Schema。<orm:schema>:DB Schema 的资料。<orm:relational-naming-settings>:字段的命名规则,也就是我们在建立 Model 时所设定数据。所以很重要的地方,就是 orm:class 和 orm:schema。以下为了方便说明,我只保留 LEO_USER 数据表的 USR_ID 和 NAME 两个字段:应该可以明显发现,在 <orm:schema> 区块下,很单纯就是记录 DB 数据表名称,以及数据表的 Column 型别和相关属性。在 <orm:class> 这区块下,就比较重要了:<orm:table>:Entity 所对应的 DB Table。<orm:identity>:Entity 的识别属性。<orm:field>:Entity 对象的属性数据,子阶层 <orm:column> 则是标记这个属性所对应的 DB Table Column。上图中我故意还保留了一个 Leodept 的属性,它有一个子阶层是 <orm:reference>,表示这个字段其实是一个外部关键主键(Foreign Key),所以在 uniqueId 中的值就是就是另一个 Entity 的 uniqueId,<orm:sharedfield> 就是指明关联 Entity 的主键(Primary Key)名称。行文至此,rlinq 的结构大致分析完了,只剩下一个地方还没说明,就是图上两个 Entity 的关联数据(一对多、一对一等关系),是储存在那里?答案是:<Types><DomainClass>下的<AssociationTargets>和<navigationalProperties>区块。另外,再追加说明一个地方,*.rlinq.diagram 也是一个 xml 格式档案,记录的是要呈现在画面上的各对象之坐标,我没特别研究它,而且通常改了就会造成可视化设计工具出错,所以看看就好,别去动它啰:


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表