仓储模式:
Repository&IRepository 仓储层
Service&IService 服务层
Models 数据层
1.使用sqlsugar,一般在Models层引入SqlSugarCore 和 SqlSugar.IOC 两个Get包 因为其他层一般都会调用到models层,因此只需在models引入包,其他调用models层即可
2.增删改查是基本的,因此创建一个Base基类,包括了增删改查。当其他实体需要CRUD以外的方法时,重写/override或者新增对应的方法即可
2.1 I开头写接口,反之写实现
/// <summary> /// 增 /// <returns></returns> bool Inserta(T entity); /// <summary> /// 删 /// <returns></returns> bool Delete(int id); /// <summary> /// 改 /// <returns></returns> bool Updata(T entity); /// <summary> /// 查询全部 /// <returns></returns> List<T> QueryAll(); /// <summary> /// 条件查询所有 /// <returns></returns> List<T> QueryConditionAll(Expression<Func<T,bool>> expression); /// <summary> /// 查询第一个 /// <returns></returns> T QueryFirst(int id); /// <summary> /// 根据条件查询第一个 /// <returns></returns> T QueryConditionFirst(Expression<Func<T, bool>> expression);接口
public bool Delete(int id) { return base.DeleteById(id); } public bool Inserta(T entity) { return base.Insert(entity); } public List<T> QueryAll() { return base.GetList(); } public List<T> QueryConditionAll(Expression<Func<T, bool>> expression) { return base.GetList(expression); } public T QueryConditionFirst(Expression<Func<T, bool>> expression) { return base.GetFirst(expression); } public T QueryFirst(int id) { return base.GetById(id); } public bool Updata(T entity) { return base.Update(entity); }实现
3. Startup配置。这里使用的是sqlsugar自带的IOC进行依赖注入,以此来使用sqlsugar
#region SQLsugarIOC 注入配置 services.AddSqlSugar(new SqlSugar.IOC.IocConfig() { ConnectionString = Configuration["SqlConnection"], //数据库连接字符串 DbType = SqlSugar.IOC.IocDbType.SqlServer, //数据库类型 IsAutoCloseConnection = true //自动释放 }); #endregion