之前的Demo好像多了一个文件,导致不能运行,现在已经更新,不好意思!:)2007年1月26号上午9时更新
点击这里下载最原始的Demo[2007.1.25版]

1、Demo详述:
      首先看下类视图及代码说明:

学习O/RM,从最简单的例子开始...之一

另外在APP_Code下 有:
ORMappings/Employee.xml;ORMappings/Person.xml                                                 
看看代码是如何调用的吧:

学习O/RM,从最简单的例子开始...之一
学习O/RM,从最简单的例子开始...之一for (int i = 0; i < 1000; i++)
}
代码说明:很简单,实例化一个Employee对象,同样可以实例化一个Person对象并如下调用
学习O/RM,从最简单的例子开始...之一
学习O/RM,从最简单的例子开始...之一Person person = new Person("person_f""person_l");
学习O/RM,从最简单的例子开始...之一ObjectStore
<Person>.Insert("myDB", person);
Insert方法
学习O/RM,从最简单的例子开始...之一public static string Insert(string cnHint, T obj)
}

 

好了以下就让我们看看Execute(T obj, string cnHint, string cmdName)方法都做了什么吧:

学习O/RM,从最简单的例子开始...之一public static string Execute(T obj, string cnHint, string cmdName)
        }

以上代码和一般的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是遍历所有映射文件,然后通过GetMappingInfostring typeName)方法返回一个MappingInfo类对象。

·MappingInfo类:负责加载映射文件中的所有Command,保存在Dictionary<TKey, TValue>中,其中TKeyCommandTtype,比如“Insert”、“Select”、“Update”等,TValue就是一个CommandInfo类对象。

·CommangInfo类:负责加载映射文件中的Parameters参数,也是保存在一个Dictionary< TKey, TValue>中,其中TKey是映射文件中dbMember,这个dbMember必须和数据库的字段名一致;TValueobjMember,对应EmployeePerson这两个实体类的参数名。

下篇文章继续。

 

相关文章:

  • 2021-09-06
  • 2022-12-23
  • 2021-12-08
  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
猜你喜欢
  • 2021-11-02
  • 2021-10-28
  • 2021-12-22
  • 2021-08-03
  • 2022-01-17
  • 2021-10-05
相关资源
相似解决方案