笔记:.Net Core NHibernate简单增删改查(3)

在interface文件夹下创建IProductRepository.cs借口,爆红是我电脑问题,重启软件就好了

 在service文件夹下创建ProductRepository.cs实现上边的接口

using System.Collections.Generic;

using NewFirst.Domain;

using NHibernate;

using NHibernate.Criterion;

namespace FirstSolution.Repositories

{

    public class ProductRepository : IProductRepository

    {

        public Product Add(Product product)

        {

            object ret;

            using (ISession session = NHibernateHelper.OpenSession())

            using (ITransaction transaction = session.BeginTransaction())

            {

                ret = session.Save(product);

                transaction.Commit();

            }

            return ret;

        }

        public void Update(Product product)

        {

            using (ISession session = NHibernateHelper.OpenSession())

            using (ITransaction transaction = session.BeginTransaction())

            {

                session.Update(product);

                transaction.Commit();

            }

        }

        public void Remove(Product product)

        {

            using (ISession session = NHibernateHelper.OpenSession())

            using (ITransaction transaction = session.BeginTransaction())

            {

                session.Delete(product);

                transaction.Commit();

            }

        }


 

        public Product GetById(int id)

        {

            using (ISession session = NHibernateHelper.OpenSession())

                return session.Get<Product>(id);

        }


 

        public Product GetByName(string name)

        {

            using (ISession session = NHibernateHelper.OpenSession())

            {

                Product product = session

                    .CreateCriteria(typeof(Product))

                    .Add(Restrictions.Eq("Name", name))

                    .UniqueResult<Product>();

                return product;

            }

        }

        public ICollection<Product> GetByCategory(string category)

        {

            using (ISession session = NHibernateHelper.OpenSession())

            {

                var products = session

                    .CreateCriteria(typeof(Product))

                    .Add(Restrictions.Eq("Category", category))

                    .List<Product>();

                return products;

            }

        }

        public List<Product> GetAll()

        {

            using (ISession session = NHibernateHelper.OpenSession())

            {

                var products = session

                    .CreateCriteria(typeof(Product))

                    .List<Product>();

                return (List<Product>)products;

            }

        }

        object IProductRepository.Add(Product product)

        {

            throw new System.NotImplementedException();

        }

    }

}

Contrllers文件夹下创建FirstController.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using Microsoft.AspNetCore.Mvc;

using Microsoft.Extensions.Logging;

using FirstSolution.Repositories;

using Microsoft.AspNetCore.Mvc.Filters;

using NewFirst.Domain;

namespace FirstSolution.Controllers

{

    [ApiController]

    [Route("api/[controller]")]

    public class FirstController : ControllerBase

    {

        private IProductRepository _service;

        public FirstController(IProductRepository partService)

        {

            _service = partService;

        }



 

        [Route("Add")]

        [HttpPost]

        public ActionResult<Product> Post([FromBody] Product product)

        {

            var ret = _service.Add(product);

            return Ok(ret);

        }

        [Route("Get")]

        [HttpPut]

        public ActionResult<Product> Put([FromBody] Product product)

        {

            _service.Update(product);

            return Ok("");

        }

        [Route("Delete")]

        [HttpDelete]

        public ActionResult<Product> Delete([FromBody] Product product)

        {

            _service.Remove(product);

            return Ok("");

        }


 

        [Route("GetByName/{name}")]

        [HttpGet]

        public ActionResult QueryExcludePartHold([FromRoute] string name)

        {

            var ret = _service.GetByName(name);

            return Ok(ret);

        }

        [Route("GetById/{id}")]

        [HttpGet]

        public ActionResult QueryPartById([FromRoute] int id)

        {

            var ret = _service.GetById(id);

            return Ok(ret);

        }

        [Route("GetByCategory/{category}")]

        [HttpGet]

        public ActionResult QueryPartByCategory([FromRoute] string category)

        {

            var ret = _service.GetByCategory(category);

            return Ok(ret);

        }

        [Route("GetAll")]

        [HttpGet]

        public ActionResult QueryAllPart()

        {

            var ret = _service.GetAll();

            return Ok(ret);

        }

    }

}

最后一步

完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值