Guushuuse .NET

专注于ASP.NET 2.0、ASP.NET AJAX、Spring.NET、NHiberbate技术

博客园 首页 新随笔 联系 订阅 管理
  41 Posts :: 0 Stories :: 89 Comments :: 18 Trackbacks
人事子系统分层结构为:领域模型层(DomainModel)——数据访问层(Dao)——服务层(Sevice)——表示层(Web),在Web页面中采用了ObjectDataSource作为GridView的数据源,并为此增加了一个帮助类。
在数据访问层中充分体现了Spring.NET和NHibernate的无缝集成,只要继承HibernateDaoSupport就能很便捷的使用NHibernate,而不需要很深入了解NHibernate。

3.1. 人事子系统领域模型层(DomainModel)
部门(Dept.cs)
using System;
using System.Collections.Generic;
using System.Text;

namespace Guushuuse.SalaryPrj.HR.DomainModel
{
    
/// <summary>
    
/// 部门
    
/// </summary>

    public class Dept
    
{
        
private int _id;
        
private string _code;
        
private string _name;

        
属性 属性

        
构造函数 构造函数
    }

}

员工(Employee.cs)

using System;
using System.Collections.Generic;
using System.Text;

namespace Guushuuse.SalaryPrj.HR.DomainModel
{
    
/// <summary>
    
/// 员工
    
/// </summary>

    public class Employee
    
{
        
private int _id;
        
private string _code;
        
private string _name;
        
private Dept _dept;

        
属性 属性

        
构造函数 构造函数
    }

}


3.2. 人事子系统映射文件(HBM)
Dept.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  
<class name="Guushuuse.SalaryPrj.HR.DomainModel.Dept, Guushuuse.SalaryPrj.HR" table="t_depts">
    
<id name="ID" column="dept_id" type="Int32"  unsaved-value="-1">
      
<generator class="identity" />
    
</id>

    
<property name="Code" column="dept_code" type="String" length="255" not-null="true" />
    
<property name="Name" column="dept_name" type="String" length="255" not-null="true" />  
  
</class>
</hibernate-mapping>

Employee.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  
<class name="Guushuuse.SalaryPrj.HR.DomainModel.Employee, Guushuuse.SalaryPrj.HR" table="t_employees">
    
<id name="ID" column="employee_id" type="Int32"  unsaved-value="-1">
      
<generator class="identity" />
    
</id>

    
<property name="Code" column="employee_code" type="String" length="255"