国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

NHibernate使用簡單示例

2019-11-17 02:04:56
字體:
供稿:網(wǎng)友

NHibernate使用簡單示例

NHibernate使用小示例

1.新建Model類庫項目。

使用代碼生成器生成Model類。

此處以簡單的UserInfo表作為示例。

注意字段前必須以virtual修飾。

namespace Model{    public partial class UserInfo    {        public virtual System.Int32 Id { get; set; }        public virtual System.String Name { get; set; }    }}

2.編寫映射實體類與數(shù)據(jù)庫的映射文件。

新建一個xml文件,并且命名為UserInfo.hbm.xml此處必須以 表名.hbm.xml 結(jié)尾,并將其生成操作改為“嵌入的資源”,因為NHibernate會以這種方式尋找映射關(guān)系。

<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Model" namespace="Model">  <class name="Model.UserInfo" table="UserInfo">    <id name="Id" column="Id" type="int"></id>    <PRoperty name="Name" column="Name" type="string"  />  </class></hibernate-mapping>

3.新建一個DAL類庫項目。

新建一個NHibernateHelper類,作為生產(chǎn)和管理session的工廠。

namespace DAL{    public class NHibernateHelper    {        private ISessionFactory _sessionFactory;        public NHibernateHelper()        {            _sessionFactory = GetSessionFactory();        }        private static ISessionFactory GetSessionFactory()        {            return (new Configuration()).Configure().BuildSessionFactory();        }        public ISession GetSession()        {            return _sessionFactory.OpenSession();        }    }}

保證每一個NHibernate類的對象只有一個Session。

4.新建一個UserInfoDAL類,實現(xiàn)對UserInfo數(shù)據(jù)的增刪改查。

namespace DAL{    public partial class UserInfoDAL    {        private ISession _isession;        public UserInfoDAL()        {            _isession = new NHibernateHelper().GetSession();        }        public void Add(UserInfo u)        {            _isession.Save(u);            _isession.Flush();        }        public bool Update(UserInfo u)        {            try            {                _isession.Update(u);                _isession.Flush();                return true;            }            catch (Exception ex)            {                return false;            }            finally            {                _isession.Close();            }        }        public bool Delete(UserInfo u)        {            try            {                _isession.Delete(u);                _isession.Flush();                return true;            }            catch (Exception ex)            {                return false;            }            finally            {                _isession.Close();            }        }        public UserInfo GetById(int id)        {            return _isession.Get<UserInfo>(id);        }        public IList<UserInfo> GetList()        {            IList<UserInfo> list = _isession.QueryOver<UserInfo>().List();            return list;        }    }}

5.新建控制臺測試項目調(diào)用

由于BLL和UI層不是本文重點,所以沒有考慮依賴注入、分層、接口等,本文主要介紹是NHibernate的配置。

在控制臺項目中添加xml文件,名字為hibernate.cfg.xml 不可更改,并且修改為“如果較新則復(fù)制”。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊川县| 宁波市| 清水河县| 呼和浩特市| 吴堡县| 乡宁县| 六枝特区| 会泽县| 宝兴县| 溧水县| 辉县市| 嘉黎县| 金阳县| 太仆寺旗| 平安县| 博野县| 噶尔县| 宝鸡市| 东安县| 子洲县| 阿拉善左旗| 贡嘎县| 柳河县| 南京市| 无锡市| 赤城县| 静宁县| 丽江市| 拜城县| 青铜峡市| 湘西| 肇源县| 五家渠市| 安达市| 宜良县| 黄骅市| 曲沃县| 台湾省| 罗城| 澄迈县| 思茅市|