随笔 - 61  文章 - 0  评论 - 404 

 我们在项目中采用了NHibernate作为ERMaping的解决方案,目前NHibernate发布了0.300版本,可以参见:NHibernate.sourceforge.net ;可NHibernate目前没有自动的配置生成工具,要一个一个的生成配置文件非常的烦人,通过研究,开发了一个配置生成工具。
        在自己的工程项目中引用NHibernateAttribute名字空间,该控件实现了:NHibernateClass,NHibernateID,NHibernateProperty,NHibernateOneToOne ,NHibernateOneToMany,NHibernateManyToOne,NHibernateManyToMany等自定义属性类,和一个根据某个类型自动生成配置的类,由此可以自动生成配置文件。
生成的某个配置文件如下:
   <?xml version="1.0" encoding="utf-8" ?>
  <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
   <class name="HR.Person.CPerson,HR" table="CPerson">
    <property name="HymenealState" type="String(50)"/>
    <property name="State" type="Int16"/>
    <property name="GuidPerson" type="Guid"/>
    <property name="Name" type="String(50)"/>
    <property name="Gender" type="Boolean"/>
    <property name="BornDate" type="DateTime"/> 
     <property name="OtherLanguageName" type="String(50)"/>
    <property name="OtherLanguageLevel" type="String(50)"/>
    <property name="Remark" type="String(50)"/>
    <property name="TechnicalTitle" type="String(50)"/>
   </class>
  </hibernate-mapping>


如果配置了 NHibernateOneToOne NHibernateManyToOne等等属性,还能自动生成这些定义。
下载文件:安装文件
若有问题,可以通过EMail:dehui.cai@hisoft.com或QQ:19646007与我联系

posted on 2005-01-27 15:13 caidehui 阅读(1933) 评论(3) 编辑 收藏

 回复 引用 查看   
#1楼 2005-02-05 17:06 | 青鸟      
牛!想向您请教一些问题,可以吗?我MSN:xk_cyanbird@msn.com
 回复 引用 查看   
#2楼 2005-02-20 10:36 | Na57      
最好能做到像middlegen那样的就更好了。
如果只是生成这样一个配置文件的话意义不大,要能根据数据库schema生成所有的hbm文件才好。
希望博主努力!

 回复 引用 查看   
#3楼[楼主] 2005-02-20 11:15 | caidehui      
我们的项目一般是从
分析=设计=-代码和数据库
所以数据库和代码是同时产生的,后来使用NHibernate以后,领域模型一般会自动生成代码,利用代码自动生成数据库,而
NHibernate自己能够生成数据库定义,所以这样就比较简单了,注意Nhibernate生成数据库定义的时候,会删除原来的定义,所以最好是修改那个方法,让它忽略已经生成了的表,或者自动的对字段进行处理,这个难度大一点,不过也能做到,我本来想改,不过后来发现自动生成数据库表定义后,对它的修改,手工改起来更直观,因此就没做了。