Asp.net Core3.0-------------------数据仓储的封装和使用。
定义一个仓储类:IRepository
///
/// EFCore数据操作基本仓储接口
///
///
public interface IRepository where TModel: class
{
///
/// 新增
///
///
void Add(TModel TModelModel);
///
/// 删除
///
///
void Delete(object Id);
///
/// 修改
///
///
void Update(TModel TModelModel);
///
/// 根据主键查询单个
///
/// 【Asp.net Core3.0-------------------数据仓储的封装和使用。】
///
TModel GetSingle(object Id);
///
/// 返回列表
///
///
IEnumerable GetList();
///
/// 获取数据库上下文
///
DbContext dbContext { get;
}///
/// 获取该实体类型
///
DbSet Entities { get;
}
}
再定义一个仓储类的实现:
public class EfRepository : IRepository where TModel : class
{
private readonly CoreContext _coreContext;
public EfRepository(CoreContext coreContext)
{
this._coreContext = coreContext;
}
public DbContext dbContext
{
get
{
return _coreContext;
}
}public DbSet Entities
{
get
{
return _coreContext.Set();
}
}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 GetList()
{
return _coreContext.Set().ToList();
}public TModel GetSingle(object Id)
{
return _coreContext.Set().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<>));
文章图片
推荐阅读
- ASP.NET|ASP.NET Core应用开发思维导图
- asp.net|asp.net core中使用log4net
- Asp.net|System.Globalization.DateTimeFormatInfo.InvariantInfo
- asp.net|c#文件写入与获取post请求数据
- .NET+C#|掌握 ASP.NET 之路(自定义实体类简介(Microsoft))
- .NET+C#|ASP.NET 2.0中Theme、MasterPage和代码国际化
- 快速理解ASP.NET Core的认证与授权
- .NetCore|从零开始学习 asp.net core 3.1 web api 后端api基础框架(一)-环境介绍
- .NetCore|从零开始学习 asp.net core 3.1 web api 后端api基础框架(七)-添加一个查询单笔数据的方法
- 一些不错的ASP.NET 学习网站