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 阅读(1896) 评论(2) 编辑 收藏 举报