Water for asp.net 之四:entity xml配置文件
entity xm配置文件是Water orm中最核心的内容,是多层架构的基石,是利用Water开发应用的主要开发点。entity xml是种纯xml文件,其配置及其简单。
entity xml配置文件的结构:
<?xml version="1.0" encoding="utf-8" ?>
<entities>
<entity>
...
</entity>
...
</entities>
一个entities节点可以包含一个或多个具体的entity节点,一个entity节点可以表示一个实体类、数据访问类、数据连接等,是最小的一个业务实体,是业务逻辑的最简单体现。我们接下来重点介绍entity节点的内容。
entity节点的结构如下:
<entity>
<key-property/>
<property/>
<ref-property />
<query-sql/>
...
</entity>
我们通过介绍各个节点的属性来了解entity节点。
entity节点属性:
| 属性 | 说明 | 示例 |
| class | 对应的业务实体类(*必填) | demo.Objects.Model.EmployeesInfo |
| dal-class | 数据访问类(*必填) | demo.Objects.DAL.EmployeesDAL |
| table | 对应的表(table|value|query-sql必有其一) | employees |
| view | 对应的视图 | employees_v |
| query-only|queryonly | 是否仅查询 | true|false |
| connectionstring-name|connection-string-name|connectionstringname | 连接字符串名(web.config) | |
| default-orderby-express|defaultorderbyexpress | 默认排序表达式(*必填) | |
| cache | 是否缓存数据 | 目前该功能较弱 |
| dal-assembly | dal的sub-query | |
| sub-query|subquery | 是否子查询 | true|false |
property|key-property节点属性:
| 属性 | 说明 | 示例 |
| name | 属性名(*必填) | 可对应数据实体类属性名 |
| column | 数据库列名(*必填) | |
| type | 数据类型 | System.Int32|System.String … |
| prompt | 提示信息(最好可通过多语言文件实现) | |
| generator-type | 主键生成类型(对key-property节点有效) | None|Assigned|Indentity|Sequence |
| generator-name | 主键生成名 | 如:oracle Sequence名 |
| insert-ignore | 插入忽略 | |
| update-ignore | 更新忽略 |
ref-property节点属性:
| 属性 | 说明 | 示例 |
| name | 属性名(*必填) | 可对应数据实体类属性名 |
| ref-entity | 引用实体类 | demo.Objects.Model.JobsInfo |
| ref-property | 引用实体类的属性 | |
| prompt | ||
| ref-mode | 引用类型 | InnerJoin|LeftJoin|RightJoin|FullJoin|CrossJoin |
| ref-display-property | 显示引用属性 | |
| property | 本实体属性 |
query-sql节点属性:查询sql语句。
下面是一个稍微复杂点的entity xml配置信息:
<entity class="demo.Objects.Model.EmployeesInfo" table="employees" dal-class="demo.Objects.DAL.EmployeesDAL" default-orderby-express="id">
<key-property name="id" column="employee_id" type="System.Int32" generator-type="indentity" />
<property name="firstName" column="first_name" type="System.String"/>
<property name="lastName" column="last_name" type="System.String"/>
<property name="email" column="email" type="System.String"/>
<property name="jobId" column="job_id" type="System.String"/>
<property name="salary" column="salary" type="System.Double"/>
<property name="hireDate" column="hire_date" type="System.DateTime"/>
<ref-property name="job"
ref-entity="demo.Objects.Model.JobsInfo"
ref-property="jobId"
ref-display-property="title as title_name,minSalary,maxSalary"
property="jobId"
ref-mode="leftjoin"/>
<property name="departmentId" column="department_id" type="System.Int32" />
<ref-property name="departmentName"
ref-entity="demo.Objects.Model.DepartmentsInfo"
ref-property="departmentId"
ref-display-property="departmentName"
property="departmentId"
ref-mode="leftjoin"/>
</entity>
以上entity xml配置信息仅供大家交流。
posted on 2010-01-18 18:54 guoqiang.liu 阅读(1918) 评论(2) 收藏 举报
浙公网安备 33010602011771号