2016.5.12 用PowerDesigner做数据库逆向工程及生成实体类

时间:2022-10-22 00:38:01

一、创建数据库物理模型

1、首先打开PowerDesigner—文件—逆向工程—数据库

2、在弹出窗口中选择数据库版本,最高10g选择,确定

3、创建数据源

4、点击SetUP...设置数据源

5、填写数据库实例名

6、填写用户名,密码点击connect

2016.5.12 用PowerDesigner做数据库逆向工程及生成实体类

7、连接成功后点确定,即可生成物理模型。

二、生成实体类

1、Tools → Generate Object-Oriented Model,

2、弹出框General页选择模型语言C#,Detail页中一定要把Check Model项取消,否则生成会出错。selection页选择要做实体类的表2016.5.12 用PowerDesigner做数据库逆向工程及生成实体类可进行全选。应用后确定,可在左侧目录中生成刚才选择表的对象模型。

另外,此步一定要将Convert names to codes选项去掉,否则生成的字段_会丢失,而且会区分大小写。最好把此页4个勾都去掉。

3、导出实体类C#文件:

首先Language → Edit Current Object Language配置模板

C# Profile\Attribute\Templates\definition,在图示位置加上{ get; set; } 注意,}后没有;号,下图有误

2016.5.12 用PowerDesigner做数据库逆向工程及生成实体类 

如果要设置using,namespace等属性,在C# Profile\Classfier\Templates\sourceBody

注意中间有段原文是:

.ifnot (%Package.namespace%)
%definition%
   .else
[\
%Package.comment%
]\
[\
%Package.customAttributes%
]\
namespace %Package.namespace%
{
   %definition%
}
   .endif

第一行表示如果不存在package.namespace,就不生成namespace,直接生成%definition%也就是各类的定义。如果存在package.namespace才生成namespace。

这样在没有package.namespace的情况下,生成的c#类就没有namespace,这样显然不满足要求,可修改上文如下:

  .ifnot (%Package.namespace%)
namespace SysWindow.Forms.DataTransfer
{
   %definition%
}
   .else
[\
%Package.comment%
]\
[\
%Package.customAttributes%
]\
namespace %Package.namespace%
{
   %definition%
}
   .endif

也就是说,如果没有package.namespace,就自己写一个需要的namespace

 

4、Language → Generate C# 2 Code 选择导出位置,取消CheckMode和WSDL选择,即可导出每个表的C#类文件。