NHibernate配制(应用程序)

User.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;

namespace ConsoleObj
{
    /// <summary>
    /// User 的摘要说明
    /// </summary>
    public class User
    {
        private string id;
        private string userName;
        private string password;
        private string emailAddress;
        private DateTime lastLogon;


        public User()
        {
        }

        public virtual string Id
        {
            get { return id; }
            set { id = value; }
        }

        public virtual string UserName
        {
            get { return userName; }
            set { userName = value; }
        }

        public virtual string Password
        {
            get { return password; }
            set { password = value; }
        }

        public virtual string EmailAddress
        {
            get { return emailAddress; }
            set { emailAddress = value; }
        }

        public virtual DateTime LastLogon
        {
            get { return lastLogon; }
            set { lastLogon = value; }
        }

    }
}

 

User.hbm.xml

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="ConsoleObj" assembly="ConsoleObj">
    <class name="User" table="users">
        <id name="Id" column="LogonId" type="String" length="20">
            <generator class="assigned" />
        </id>
        <property name="UserName" column= "Name" type="String" length="40"/>
        <property name="Password" type="String" length="20"/>
        <property name="EmailAddress" type="String" length="40"/>
        <property name="LastLogon" type="DateTime"/>
    </class>
</hibernate-mapping>

 

App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <!-- Configuration Sections In This File -->
    <configSections>

        <!-- NHibernate Section -->
        <section
            name="hibernate-configuration"
            type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"
        />
    </configSections>

    <!-- NHibernate Configuration -->
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
        <session-factory>
            <property name="connection.provider">
                NHibernate.Connection.DriverConnectionProvider
            </property>
            <property name="dialect">
                NHibernate.Dialect.MsSql2005Dialect
            </property>
            <property name="connection.driver_class">
                NHibernate.Driver.SqlClientDriver
            </property>
            <property name="connection.connection_string">
                Data Source=.;Initial Catalog=test;Integrated Security=True;Pooling=False
            </property>
        </session-factory>
    </hibernate-configuration>

</configuration>

 

调用:

  class Program
    {
        static void Main(string[] args)
        {
            Configuration cfg = new Configuration();
            cfg.Configure();
            Assembly assembly = typeof(User).Assembly;
            cfg.AddAssembly(assembly);
            ISessionFactory factory = cfg.BuildSessionFactory();
            ISession session = factory.OpenSession();
            ITransaction tran = session.BeginTransaction();
            User newUser = new User();
            newUser.Id = "joe_cool";
            newUser.UserName = "Joseph Cool";
            newUser.Password = "abc123";
            newUser.EmailAddress = "joe@cool.com";
            newUser.LastLogon = DateTime.Now;
            session.Save(newUser);
            tran.Commit();
            session.Close();
            Console.Write("成功!");
            Console.Read();
        }
    }

学NHibernate我也是第一次接触,我用了一天的时间才弄明白怎么把它配制好。因为C#与ASP。NET的配制不一样,在C#里面必须把User.hbm.xml文件设成嵌入式资料,不然session打不开,不能工作。而在ASP。NET页面中也是这样,不过在WEB项目中不知道在哪里设置,所以一直没有怎么去弄,打算有时间弄懂,下次继续!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值