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

<表结构静态类>与<实体类>区别与应用



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


ORM是指对象关系映射,开发框架将ORM定义为静态类(Static Class)或实体类(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); //实体类
}




C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

上一篇 下一篇