Water for asp.net 之四:entity xml配置文件

water-logo

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编辑  收藏  举报