• 用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

    搞定!


          
  • 相关阅读:
    你的指纹还安全吗?
    看黑客如何远程黑掉一辆汽车
    利用Teensy进行em410x卡模拟以及暴力破解em410x类门禁系统
    curl命令使用
    Robots.txt
    NodeJs框架
    redis3.2 最新版本启动配置文件redis.conf详细说明
    CentOS 7 上安装 redis3.2.3安装与配置
    Rabbitmq Exchange Type 说明
    windows7下修改hosts文件无效解决办法(转)
  • 原文地址:https://www.cnblogs.com/wljcan/p/12093.html
Copyright © 2020-2023  润新知