之前的Demo好像多了一个文件,导致不能运行,现在已经更新,不好意思!:)2007年1月26号上午9时更新
点击这里下载最原始的Demo[2007.1.25版]
1、Demo详述:
首先看下类视图及代码说明:
|
|
以上代码和一般的ADO.NET数据库操作类似。
下面再来看看映射文件的结构,以Emplyee为例:
<?xml version="1.0" encoding="utf-8" ?>
<object.mappings>
<object.mapping for="Employee" namespace="ClassLibrary1">
<command type="Insert">
<text>
dbo.EMPLOYEE_INS_SP
</text>
<parameters>
<add objMember="_employeeId" dbMember="@EmployeeId"/>
<add objMember="_firstName" dbMember="@FirstName" />
<add objMember="_lastName" dbMember="@LastName" />
<add objMember="_age" dbMember="@Age" />
</parameters>
</command>
<!--省略了Select和Update的映射,代码可见Demo-->
</object.mapping>
</object.mappings>
我们再看看MappingStore.cs这个文件中的类:
其中有三个类(我觉得这里就不是很符合规范,一个文件包含了三个类,但至少阅读起来的确比较方便)
·MappingStore类:负责加载映射文件,这里的Demo是遍历所有映射文件,然后通过GetMappingInfo(string typeName)方法返回一个MappingInfo类对象。
·MappingInfo类:负责加载映射文件中的所有Command,保存在Dictionary<TKey, TValue>中,其中TKey是CommandTtype,比如“Insert”、“Select”、“Update”等,TValue就是一个CommandInfo类对象。
·CommangInfo类:负责加载映射文件中的Parameters参数,也是保存在一个Dictionary< TKey, TValue>中,其中TKey是映射文件中dbMember,这个dbMember必须和数据库的字段名一致;TValue是objMember,对应Employee和Person这两个实体类的参数名。
下篇文章继续。