Asp.net Core3.0-------------------数据仓储的封装和使用。

定义一个仓储类:IRepository

/// <summary>
    /// EFCore数据操作基本仓储接口
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IRepository<TModel> where TModel: class
    {
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="TModelModel"></param>
        void Add(TModel TModelModel);



        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Id"></param>
        void Delete(object Id);


        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="TModelModel"></param>
        void Update(TModel TModelModel);



        /// <summary>
        /// 根据主键查询单个
        /// </summary>
        /// <param name="Id"></param>
        /// <reTModelurns></reTModelurns>
        TModel GetSingle(object Id);


        /// <summary>
        /// 返回列表
        /// </summary>
        /// <reTModelurns></reTModelurns>
        IEnumerable<TModel> GetList();

        /// <summary>
        /// 获取数据库上下文
        /// </summary>
        DbContext dbContext { get; }

        /// <summary>
        /// 获取该实体类型
        /// </summary>
        DbSet<TModel> Entities { get; }
    }

再定义一个仓储类的实现:

 public class EfRepository<TModel> : IRepository<TModel> where TModel : class
    {
        private readonly CoreContext _coreContext;

        public EfRepository(CoreContext coreContext)
        {
            this._coreContext = coreContext;
        }
        public DbContext dbContext
        {
            get
            {
                return _coreContext;
            }
        }

        public DbSet<TModel> Entities
        {
            get
            {
                return _coreContext.Set<TModel>();
            }
        }

        public void Add(TModel model)
        {
            _coreContext.Add(model);
            _coreContext.SaveChanges();
        }

        public void Delete(object Id)
        {
            var entity = GetSingle(Id);

            if (entity != null)
            {
                _coreContext.Remove(entity);
                _coreContext.SaveChanges();
            }

        }

        public IEnumerable<TModel> GetList()
        {
            return _coreContext.Set<TModel>().ToList();
        }

       
        public TModel GetSingle(object Id)
        {
            return _coreContext.Set<TModel>().Find(Id);
        }


        public void Update(TModel model)
        {
            _coreContext.Update(model);
        }

      
    }

Ps:CoreContext是使用EF框架自动生成的数据库上下文,有疑惑移步:

https://note.youdao.com/ynoteshare1/index.html?id=e1a48103e47ae5ba4b76d0ce7b277743&type=note

使用的时候再Starup中注入:

services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>));


           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值