实体层:

  在DAO中的Entity文件夹内:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAO.Entity
{
    /// <summary>
    /// 用户帐号
    /// </summary>
    /// 
    [Serializable]
    public class Account
    {
        /// <summary>
        /// 用户编号
        /// </summary>
        public virtual Int32 AccountID { get; set; }

        /// <summary>
        /// 用户姓名
        /// </summary>
        public virtual String Name { get; set; }

        /// <summary>
        /// 用户登陆名
        /// </summary>
        public virtual String AccountName { get; set; }

        /// <summary>
        /// 用户密码
        /// </summary>
        public virtual String Pwd { get; set; }

        /// <summary>
        /// 用户状态
        /// </summary>
        public virtual Boolean Status { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public virtual String TelPhone { get; set; }

        /// <summary>
        /// 邮件
        /// </summary>
        public virtual string Email { get; set; }

        /// <summary>
        /// 人员所属部门
        /// </summary>
        public virtual Department Department { get; set; }
        
        /// <summary>
        /// 人员所属角色
        /// </summary>
        public virtual IList<Role> Roles { get; set; }
    }
}

  映射文件:

在DAO.Nhibernate的Mapping文件夹:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="DAO.Entity.Account,DAO" table="Account" lazy="true">
    <id name="AccountID" type="Int32">
      <column name="AccountID" sql-type="int" not-null="true"/>
      <generator class ="native"></generator>
    </id>
    <property name="Name" type="String">
      <column name="Name" length="10" sql-type="nvarchar" not-null="false"></column>
    </property>
    <property name="AccountName"  type="String">
      <column name="AccountName" length="20" sql-type="nvarchar" not-null="false" unique="true"></column>
    </property>
    <property name="Pwd"  type="String">
      <column name="Pwd" length="50" sql-type="nvarchar" not-null="false"></column>
    </property>
    <property name="Status"  type="Boolean">
      <column name="`Status`"  sql-type="bit" not-null="false" default="1"></column>
    </property>
    <property name="TelPhone"  type="String">
      <column name="TelPhone"  sql-type="nvarchar" length="50" not-null="false"></column>
    </property>
    <property name="Email"  type="String">
      <column name="Email"  sql-type="nvarchar" length="50" not-null="false"></column>
    </property>
    <many-to-one name="Department" column="DepartmentID" class="DAO.Entity.Department,DAO" lazy="false" foreign-key="FKBE1051AFF4DB039A"></many-to-one>
    <bag name="Roles" table="AccountInRle" lazy="false">
      <key column="AccountID"></key>
      <many-to-many column="RoleID" class="DAO.Entity.Role,DAO"></many-to-many>
    </bag>
  </class>
</hibernate-mapping>

  DAO.xml 文件,主要是访问层的配置

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database">

  <!-- Referenced by main application context configuration file -->
  <description>
    中转平台
  </description>

  <!-- Property placeholder configurer for database settings -->
  <!--<object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
    <property name="ConfigSections" value="databaseSettings"/>
  </object>-->

  <!-- Database Configuration -->
  <!--<db:provider id="DbProvider"
                   provider="SqlServer-2.0"
                   connectionString="Server=127.0.0.1;database=TransitData;integrated security=sspi;"/>-->
  
    <db:provider id="DbProvider"
                   provider="SqlServer-2.0"
                   connectionString="Server=59.173.61.174;database=AirportTransit;uid=kaiya;pwd=kaiya;"/>

  <!-- NHibernate Configuration -->
  <object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate33">
    <property name="DbProvider" ref="DbProvider"/>
    <!-- Here -->
    <property name="MappingAssemblies">
      <list>
        <value>DAO.Nhibernate</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
        <entry key="connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
        <entry key="use_proxy_validator" value="false" />


        <!-- provides integation with Spring's declarative transaction management features -->
        <entry key="use_outer_join" value="true"/>
        <entry key="show_sql" value="true"/>
        <!-- Here -->
        <!--自动建表(反向映射)-->
        <entry key="hbm2ddl.auto" value="update"/>
        <entry key="adonet.batch_size" value="10"/>
        <entry key="command_timeout" value="60"/>
        <!--显式启用二级缓存-->
        <entry key="cache.use_second_level_cache" value="true"/>
        <!--启动查询缓存-->
        <entry key="cache.use_query_cache" value="false"/>
        <entry key="query.substitutions" value="true 1, false 0, yes 'Y', no 'N"/>
      </dictionary>
    </property>
    <property name="ExposeTransactionAwareSessionFactory" value="true" />

  </object>

  <!-- Transaction Management Strategy - local database transactions -->
  <object id="transactionManager"
        type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate33">

    <property name="DbProvider" ref="DbProvider"/>
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>

  </object>

  <!-- Exception translation object post processor -->
  <object type="Spring.Dao.Attributes.PersistenceExceptionTranslationPostProcessor, Spring.Data"/>

  <!-- Data Access Objects -->
  <object id="DepartmentDAO" type="DAO.Nhibernate.DAO.DepartmentDAO, DAO.Nhibernate">
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
  </object>
  <object id="AccountDAO" type="DAO.Nhibernate.DAO.AccountDAO, DAO.Nhibernate">
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
  </object>
  <object id="RoleDAO" type="DAO.Nhibernate.DAO.RoleDAO, DAO.Nhibernate">
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
  </object>
  <!--<object id="PassengerDAO" type="DAO.Nhibernate.DAO.PassengerDAO, DAO.Nhibernate">
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
  </object>-->
  <object id="VPassengerDAO" type="DAO.Nhibernate.DAO.VPassengerDAO, DAO.Nhibernate">
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
  </object>
  <object id="ServicePackDAO" type="DAO.Nhibernate.DAO.ServicePackDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="CheckinDAO" type="DAO.Nhibernate.DAO.CheckinDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="ServiceItemDAO" type="DAO.Nhibernate.DAO.ServiceItemDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="ServiceStatusDAO" type="DAO.Nhibernate.DAO.ServiceStatusDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PassengerServiceDAO" type="DAO.Nhibernate.DAO.PassengerServiceDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PassengerCheckinDAO" type="DAO.Nhibernate.DAO.PassengerCheckinDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PassengerLogDAO" type="DAO.Nhibernate.DAO.PassengerLogDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PassengerProcDAO" type="DAO.Nhibernate.DAO.PassengerProcDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PassengerServiceLogDAO" type="DAO.Nhibernate.DAO.PassengerServiceLogDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="PrivilegeDAO" type="DAO.Nhibernate.DAO.PrivilegeDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
  <object id="BaggageDAO" type="DAO.Nhibernate.DAO.BaggageDAO, DAO.Nhibernate" >
    <property name="SessionFactory" ref="NHibernateSessionFactory" />
  </object>
</objects>

  CustomLocalSessionFactoryObject类:

using NHibernate.Bytecode;

using Spring.Data.NHibernate;
using Spring.Data.NHibernate.Bytecode;

namespace DAO.Nhibernate.DAO.Nhibernate
{
    /// <summary>
    /// A custom version of <see cref="LocalSessionFactoryObject" /> that sets 
    /// bytecode provider to be Spring.NET's <see cref="BytecodeProvider" />.
    /// </summary>
    

    
    public class CustomLocalSessionFactoryObject : LocalSessionFactoryObject
    {
        /// <summary>
        /// Overwritten to return Spring's bytecode provider for entity injection to work.
        /// </summary>
        public override IBytecodeProvider BytecodeProvider
        {
            get { return new BytecodeProvider(ApplicationContext); }
            set { }
        }
    }
    
}

  Service层:

using DAO.DAO;
using DAO.Entity;
using Service.Interface;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Service.Service
{
    public class AccountService : IAccountService
    {
        public IAccountDAO account;

        public IAccountDAO Account
        {
            set
            {
                this.account = value;
            }
        }
}

  Service.XML

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:tx="http://www.springframework.net/tx">

  <!-- Referenced by main application context configuration file -->

  <description>
    中转平台
  </description>

  <object id="AccountService" type="Service.Service.AccountService, Service">
    <property name="Account" ref="AccountDAO"/>
  </object>
  
  <tx:attribute-driven/>
</objects>

  页面文件:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
  <description>
    中转平台
  </description>


  <object type="Sys_Account/Account.aspx">
    <property name="AccountService" ref="AccountService"></property>
  </object>
 
</objects>

  

using DAO.Entity;
using Service.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;

namespace TransitWeb.Sys_Account
{
    public partial class Account : System.Web.UI.Page
    {
        private IAccountService _AccountService;

        public IAccountService AccountService
        {
            set
            {
                _AccountService = value;
            }
        }
}