自动生成NHibernate配置文件工具的使用实例
各位,由于最近研究NHibernate的朋友多起来了,很多人问到我那个自动生成NHibernate配置文件的工具如何使用,这里贴出一段代码,请大家自己看。
几点说明:
1.我这里生成的配置文件,假设和数据库字段一致,因此没有复杂的配置页面,生成后,大家可以根据自己的情况,简单修改一下配置文件。
2.由于该工具是在Nhibernate0.3的时候做的,后来一直没有时间更新,因此可能有部分功能在现在的NHibernate中得到了增强或者修改,不过生成配置的方法我一直使用,在0.7版本中也没有问题,是可以用的。
3.由于我的项目刚开始的时候,不存在NullableType,因此DateTime类型,使用的是判断是否小于1753这种方式,如果后来的人使用Nullabletype的话,请自行修改,如果要保留DateTime的话,我修改了Nhibernate中有关DateTime部分,请大家自己去改。
4.该工具在没有设置属性的时候,将每个属性都认为是普通属性,所以请大家设置One-TO-One,One-To-Many等属性
using System;
using System.Collections ;
using HR;
using ManHour;
using HR.Employee ;
using NHibernateAttribute;
using Market;
using Contract;
using Common;
using NHibernate;
using HR.OrganizationUnit ;
namespace Project
{
[NHibernateClass]
public class CProject:Common.CObject
{
///ID 属性
[NHibernateID]
public Guid GuidProject
{
get
{
return this.mGuidProject ;
}
set
{
this.mGuidProject = value;
}
}
///普通属性
public String Name
{
get
{
return this.mName ;
}
set
{
this.mName = value;
}
}
[NHibernateOneToMany("Contract.CContract","MarketManage",KeyColumn="GuidAssignToProject")]
public IList Contracts
{
get
{
return this.mContracts ;
}
set
{
this.mContracts = value;
}
}
[NHibernateManyToOne]
public CManhour CustmerRebackManhour
{
get
{
return mCustmerRebackManhour;
}
set
{
mCustmerRebackManhour = value;
}
}
[NHibernateOneToOne]
public CEmployee PM
{
get
{
return mPM;
}
set
{
mPM= value;
}
}
[NHibernateManyToMany("Contract.CContract, Contract","GuidRole")]
public IList Contracts
{
get
{
if(this.mContracts==null)
this.mContracts=new ArrayList();
return this.mContracts;
}
set
{
this.mContracts= value;
}
}
}
}