现在的位置: 首页 > 综合 > 正文

NHibernate

2013年06月04日 ⁄ 综合 ⁄ 共 2892字 ⁄ 字号 评论关闭

create table t_user(id int primary key auto_increment, name char(20), pwd char(20));

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

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <!-- ISessionFactory实例 -->
  <session-factory>
    <property name="hbm2ddl.keywords">none</property>
    <!-- 属性 -->
    <!-- 设置connection provider,NHibernate将用之连接数据库 -->
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <!-- 设置所用driver,在此,我们为MySQL数据库选择MySqlDataDriver -->
    <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
    <!-- 设置连接到数据库的connection string -->
    <property name="connection.connection_string">Server=127.0.0.1;Database=test;Uid=root;Pwd=root;</property>

    <!-- 为特定数据库选择Dialect,这里选择使用MySQL5Dialect -->
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>
    <!-- 映射文件 -->
    <mapping assembly="Test"></mapping>
  </session-factory>

</hibernate-configuration>

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="MyNamespace.Data.Tuser, Test" table="t_user" lazy="true">
    <id name="Id"  type="int" >
      <column name="id"></column>
      <generator class="native" />
    </id>
    <property name="Name" type="String">
      <column name="name" length="20" sql-type="char" not-null="false"/>
    </property>
    <property name="Pwd" type="String">
      <column name="pwd" length="20" sql-type="char" not-null="false"/>
    </property>
  </class>
</hibernate-mapping>

using System;
using System.Collections;

namespace MyNamespace.Data
{
    #region Tuser

    /// <summary>
    /// Tuser object for NHibernate mapped table 't_user'.
    /// </summary>
    public class Tuser 
    {
        #region Member Variables

        protected int _id;
        protected string _name;
        protected string _pwd;

        public Tuser() { }

        public virtual int Id
        {
            get { return _id; }
            set { _id = value; }
        }

        public virtual string Name
        {
            get { return _name; }
            set
            {
                if (value != null && value.Length > 10)
                    throw new ArgumentOutOfRangeException("Invalid value for Name", value, value.ToString());
                _name = value;
            }
        }

        public virtual string Pwd
        {
            get { return _pwd; }
            set
            {
                if (value != null && value.Length > 10)
                    throw new ArgumentOutOfRangeException("Invalid value for Pwd", value, value.ToString());
                _pwd = value;
            }
        }

        #endregion

    }

    #endregion
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Cfg;
using MyNamespace.Data;

namespace NHibernate
{
    class Program
    {
        static void Main(string[] args)
        {
            Tuser user = new Tuser();
            user.Name = "111";
            user.Pwd = "222";
            Configuration cfg = new Configuration();
            ISessionFactory factory = cfg.Configure().BuildSessionFactory();
            ISession session = factory.OpenSession();
           Console.WriteLine("success" + session.GetType());
           session.SaveOrUpdate(user);
           IQuery q = session.CreateQuery("from Tuser");
           Console.WriteLine(q.List().Count);
           Console.ReadKey();
        }
    }
}

抱歉!评论已关闭.