2016.5.12 用PowerDesigner做數據庫逆向工程及生成實體類


一、創建數據庫物理模型

1、首先打開PowerDesigner—文件—逆向工程—數據庫

2、在彈出窗口中選擇數據庫版本,最高10g選擇,確定

3、創建數據源

4、點擊SetUP...設置數據源

5、填寫數據庫實例名

6、填寫用戶名,密碼點擊connect

7、連接成功后點確定,即可生成物理模型。

二、生成實體類

1、Tools → Generate Object-Oriented Model,

2、彈出框General頁選擇模型語言C#,Detail頁中一定要把Check Model項取消,否則生成會出錯。selection頁選擇要做實體類的表可進行全選。應用后確定,可在左側目錄中生成剛才選擇表的對象模型。

另外,此步一定要將Convert names to codes選項去掉,否則生成的字段_會丟失,而且會區分大小寫。最好把此頁4個勾都去掉。

3、導出實體類C#文件:

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

C# Profile\Attribute\Templates\definition,下面兩行處加上{ get; set; },第一行表示非數組型變量,第二行表示數組型變量格式

////////////////////如下 

.if (%isValidAttribute%)
[%comment%\n]\
[%customAttributes%\n]\
[%oid%\n]\
   .if (%Multiple% == false) and (%isIndexer% == false)
[%visibility% ][%flags% ]%dataType% %code%[ = %InitialValue%] {get;set;}
   .else
[%visibility% ][%flags% ]%dataType%[%arraySize%] %code%[ = %InitialValue%] {get;set;}
   .endif
 .endif 

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

///////////////////////////////////////////////2019.6.10更新 可將整體sourceBody內容改為如下: (加上\[Serializable\],注意[ ]前要加\,否則不會出現[ ])

.ifnot (%isInner%)

[\ %usings%\n ]\

namespace AMXM

{

   \[Serializable\]

   %definition%

}

.endif

///////////////////////////////////////////////

以下關於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#類文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM