PowerDesigner16.5物理数据表生成C#实体类Model

时间:2023-03-08 17:07:52

原文:PowerDesigner16.5物理数据表生成C#实体类Model

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.****.net/da454122373/article/details/54346217

model实体类是什么:

在三层架构UI,BLL,DAL中,有时用户插入一条记录到数据库中,必然会有不少数据,按正常编程,也必然会一下子调用某个函数传入不少参数。为了减少参数的数量,达到高效简洁的效果,一般会用model实体类作为传输数据的载体。

model实体类一般对应着数据库里的字段,一个类实体对应一张表。比如:user数据表 有id,password,name,那么实体类usr也相应id,password,name属性来作为数据载体。但是有时我们在PowerDesigner设计的数据库表太多了,如果亲手码实体类model真的太累,太低效了。好在PowerDesigner可以自动生成实体类这个功能。

PowerDesigner生成C#实体类:

前提:现有物理数据表,比如:PowerDesigner16.5物理数据表生成C#实体类Model

在tools  -  Generte Object-Oriented Model,点击打开如下

PowerDesigner16.5物理数据表生成C#实体类Model

打开之后出现下图,选C#

PowerDesigner16.5物理数据表生成C#实体类Model

在detail中convert names into codes,打勾则用名字作为实体类代码里的名称,不打勾就用表中code作为实体类代码里的名称。

PowerDesigner16.5物理数据表生成C#实体类Model

之后点确定生成类图。

这时可以看到language中有edit current object language和generage C# 2 code,

PowerDesigner16.5物理数据表生成C#实体类Model

edit current object language中profile  -  Attribute  -  Templates 里有个definition文件。可以根据自己需要修改实体类模板

PowerDesigner16.5物理数据表生成C#实体类Model

当然我的模板是:

.if (%isGenerated%) and (%isValidAttribute%)
[%comment%\n]\
[%oidDocTag%\n]\
[%customAttributes%\n]\
   .if (%Multiple% == false) and (%isIndexer% == false) private [%flags% ]%dataType% %fieldCode%[ = %InitialValue%]; [%visibility% ][%flags% ]%dataType% 
.convert_name(%fieldCode%,,"_",FirstUpperChar)
{
   get { return %fieldCode%; }
   set { %fieldCode% = value; }
}    .else private [%flags% ]%dataType%[%arraySize%] %fieldCode%[ = %InitialValue%]; [%visibility% ][%flags% ]%dataType% 
.convert_name(%fieldCode%,,"_",FirstUpperChar)
{
   get { return %fieldCode%; }
   set { %fieldCode% = value; }
}    .endif
.endif

最后generage C# 2 code,选好生成的目录点确定就生成了

PowerDesigner16.5物理数据表生成C#实体类Model

在借鉴了http://blog.****.net/zhangrun1/article/details/29578825,写这个只是自我的一个技术总结,方便下次忘记了查看,也顺便地方便一下他人