zoukankan      html  css  js  c++  java
  • 用Powerdesigner生成NHebernate的MAP文件

    昨天通过修改Powerdesigner的配置文件实现特殊的C#代码生成要求后,今天突然想到:如果能够在Powerdesigner中直接生成Map文件,那就比较爽了。   

    下午试了一会,发现完全可行,其具体方式是
    在Profile\Classifier\Generated Files下添加一项,如hbm.xml,该项设置为
    文件名:%topContainerCode%.hbm.xml
    说明 :
                      .if (%isGenerated%)
                            .set_object(_usingContext,,new)
                           [\ %NHebernateHead%\n]\
                          %NHebernateBody% \n
                          %NHebernateFoot%
                       .endif    
    设置变量的值,如将 %NHebernateBody%设置为:
    <class name="%MyClassPathName%.%Parent.path%, %MyClassPathName%" table="%Parent.path%"> \n
          .foreach_item(Attributes)
            .if(%code%==%myPrimaryKey%)
       <id name="%code%" column="%code%" type="String">
        <generator class="assigned" />
       </id>  \n
          .endif
            .if (%dataType%=="string")
       <property name="%code%" column="%code%" type="String" /> \n
           .endif
           .if (%dataType%=="int")
       <property name="%code%" column="%code%" type="Int32" /> \n
           .endif
          .next
    </class>   
    (数据类型的转换部分可以自己加上)

    设置完成,在Project文件中添加对这些文件的引用。
    将Profile\BasePackage\Templates\VisualStudio.NET\ProjectSourceFiles设置为:
    .// Declare classifiers of the package
    .foreach_item(Classifiers,,,%IsShortcut%==false)
       .if (%IsSelected%) and (%isInner% == false)
    <File
        RelPath = "%sourceFilePath%"
        SubType = "Code"
        BuildAction = "Compile"
    />
    <File
        RelPath = "%Parent.path%\\%topContainerCode%.hbm.xml"
        BuildAction = "EmbeddedResource"
    />
       .endif(\n)
    .next
    .// Declare classifiers of the subpackages
    .foreach_item(Packages,,,%IsShortcut%==false)
       .if (%isAssembly% == false)
    %ProjectSourceFiles%
       .endif
    .next

    搞定!


          
  • 相关阅读:
    VS 对话框控件的Tab顺序问题
    基于OpenGL三维软件开发
    OpenGL 中的三维纹理操作
    VC 在桌面上绘制一些图形
    VC/MFC如何添加启动界面
    Cordova or Xamarin 用.net开发IOS和Android程序
    ASP.NET Web API
    软件项目如何选型
    CIO的职责、条件及价值
    Oracle日期周详解IW
  • 原文地址:https://www.cnblogs.com/wljcan/p/12093.html
Copyright © 2011-2022 走看看