自动生成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;
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述