<表结构静态类>与<实体类>区别与应用
作者:C/S框架网  发布日期:2013-07-15 17:52:53
  <表结构静态类>与<实体类>区别与应用

开发框架支持的两种ORM模型(静态类/实体类)


ORM是指对象关系映射,开发框架将ORM定义为静态类(Static Field Def.)或实体类(Entity Class/Object Class),静态类是指只定义表结构的字段映射,这种类无任何方法或属性,只有对应字段名称定义,而实体类包含字段名称定义和对应的属性,下面是两种不同的ORM类定义:



详细说明:

http://www.csframework.com/archive/1/arc-1-20120316-1922.htm





l  生成表结构静态类


            
只是一个静态类,仅生成了字段的常量名,无任何属性和方法。

     

此类型的ORM, 在数据层的CreateSqlGenerator方法必须创建

GenerateSqlCmdByTableFields对象。


 

l  生成实体类(对象)

实体类,生成了字段的常量名和所有字段属性。可实例化为具体对象。

如:User, Customer, Order等。

 

此类型的ORM, 在数据层的CreateSqlGenerator方法必须创建

GenerateSqlCmdByObjectClass对象。



应用

1. 在界面层操作数据,基于DataTable形式的(操作DataRow,DataTable),生成表结构静态类。

2. 在界面层操作数据,基于Object实体类形式的(操作对象实体,如Person.Name,Person.Age),生成实体类。

平台中的例子是基于DataTable形式的,只有《销售员管理》是基于实体类形式。


静态类使用GenerateSqlCmdByTableFields命令生成器生成SQL
实体类使用GenerateSqlCmdByObjectClass命令生成器生成SQL, 参考:dalPerson.cs


dalPerson.cs



C# Code:


protected override IGenerateSqlCommand CreateSqlGenerator(string tableName)
{
   Type ORM = null;
   if (tableName == tb_Person.__TableName) ORM = typeof(tb_Person);
   if (ORM == null) throw new Exception(tableName "表没有ORM模型!");
   //return new GenerateSqlCmdByTableFields(ORM);
   return new GenerateSqlCmdByObjectClass(ORM); //实体类
}




 


上一篇 下一篇