随笔 - 61  文章 - 0  评论 - 405  阅读 - 14万 

自动生成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;
   }
  }
 }
}

posted on   caidehui  阅读(5855)  评论(2编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示