第一个NHibernate应用程序

Posted dzw159

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个NHibernate应用程序相关的知识,希望对你有一定的参考价值。

增删改查询

 

using NHibernate;
using Shop.Domain.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace Shop.Data
{
    public class CartData
    {
        /// <summary>
        /// 根据条件得到数据集合
        /// </summary>
        /// <param name="where"></param>
        /// <returns></returns>
        public IList<Cart> GetCartList(Expression<Func<Cart,bool>> where)
        {
            try
            {
                using (ISession session = NHibernateHelper.SessionFactory.OpenSession())
                {
                    return session.Query<Cart>().Select(x=>new Cart
                    {
                        Id = x.Id,
                        Name = x.Name
                    }).Where(where).ToList();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        /// <summary>
        /// 获取单条记录
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Cart GetCartById(int id)
        {
            using (ISession session = NHibernateHelper.SessionFactory.OpenSession())
            {
                Cart cart = session.Get<Cart>(id);
                return cart;
            }
        }

        /// <summary>
        /// 添加数据
        /// </summary>
        /// <param name="cart"></param>
        /// <returns></returns>
        public bool Insert(Cart cart)
        {
            using (var session = NHibernateHelper.SessionFactory.OpenSession())
            {
                var identifier = session.Save(cart);
                session.Flush();
                return string.IsNullOrEmpty(identifier.ToString());
            }
        }

        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="cart"></param>
        public void Update(Cart cart)
        {
            using (var session = NHibernateHelper.SessionFactory.OpenSession())
            {
                session.SaveOrUpdate(cart);
                session.Flush();
            }
        }

        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="id"></param>
        public void Delete(int id)
        {
            using (var session = NHibernateHelper.SessionFactory.OpenSession())
            {
                var cart = session.Get<Cart>(id);
                session.Delete(cart);
                session.Flush();
            }
        }


    }
}

 参阅:ASP.NET MVC 企业级实战(邹琼俊

以上是关于第一个NHibernate应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Nhibernate的第一个实例

nHibernate 不加载第三级属性(不可刷新缓存)

20160525NHibernate第一个成功的小例子

NHibernate初学者指南系列文章导航

通过代码进行 Nhibernate 一对一映射

第二部分 Nhibernate中的类型