码迷,mamicode.com
首页 > Web开发 > 详细

第一个NHibernate应用程序(二)

时间:2019-03-03 22:21:43      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:www   获取   ssi   cep   UNC   一个   session   https   isnull   

增删改查询

 

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应用程序(二)

标签:www   获取   ssi   cep   UNC   一个   session   https   isnull   

原文地址:https://www.cnblogs.com/dzw159/p/10467916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!