- 解决方案新增Respository文件夹,新增类库TEST.Respository,TEST.IRepository
新增Services文件夹,新增类库TEST.Services,TEST.IServices
- Repository以及Model引入SqlsugarCore
-
Repository新增SqlSugar文件夹,新增BaseDBConfig.cs
public class BaseDBConfig { /// <summary> /// 数据库连接字符串 /// </summary> public static string ConnectionString { get; set; } }
新增DBContext帮助类
/// <summary> /// 数据库帮助类 /// </summary> /// <typeparam name="T"></typeparam> public class DBContext<T> where T : class,new () { public DBContext() { Db = new SqlSugarScope(new ConnectionConfig() { ConnectionString = BaseDBConfig.ConnectionString, DbType = DbType.SqlServer, InitKeyType = InitKeyType.Attribute, IsAutoCloseConnection = true, }); //调试代码,用来打印SQL Db.Aop.OnLogExecuting = (sql, pars) => { Console.WriteLine($"{sql} \r\n" + $" {Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))}"); Console.WriteLine(); }; } public SqlSugarScope Db { get; set; } //用来处理事务多表查询和复杂的操作 public SimpleClient<T> CurrentDb { get { return new SimpleClient<T>(Db); }} //用来操作当前表的数据 }
- 在appsettings.json添加数据库连接字符串
"ConnectionString": { "SQLServer": "server=.;uid=sa;pwd=123456;database=TESTAPI;Encrypt=True;TrustServerCertificate=True;" },
- 在Program.cs中添加读取数据库连接字符串
//读取数据库连接字符串 BaseDBConfig.ConnectionString = builder.Configuration.GetSection("ConnectionString:SQLServer").Value;
- 在IRepository中新增Base文件夹,并添加基类接口IBaseRepository.cs
/// <summary> /// 基类接口,其他接口继承该接口 /// </summary> /// <typeparam name="TEntity"></typeparam> public interface IBaseRepository<TEntity> where TEntity : class { /// <summary> /// 根据ID列表查询 /// </summary> /// <param name="objId">ID</param> /// <returns></returns> Task<TEntity> QueryByID(object objId); /// <summary> /// 查询所有数据 /// </summary> /// <returns></returns> Task<List<TEntity>> Query(); /// <summary> /// 添加 /// </summary> /// <param name="model"></param> /// <returns></returns> Task<long> Add(TEntity model); /// <summary> /// 修改 /// </summary> /// <param name="model"></param> /// <returns></returns> Task<bool> Update(TEntity model); /// <summary> /// 根据ID列表删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> Task<bool> DeleteByIds(object[] ids); /// <summary> /// 根据ID删除 /// </summary> /// <param name="id"></param> /// <returns></returns> Task<bool> DeleteById(object id); }
- 在Repository层中,添加Base文件夹,并添加BaseRespository.cs基类
public class BaseRepository<TEntity> : DBContext<TEntity>, IBaseRepository<TEntity> where TEntity : class, new() { /// <summary> /// 写入实体数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<long> Add(TEntity model) { return await Db.Insertable(model).ExecuteCommandAsync(); } /// <summary> /// 根据ID删除 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task<bool> DeleteById(object id) { return await Db.Deleteable<TEntity>().In(id).ExecuteCommandAsync() > 0; } /// <summary> /// 根据ID列表删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> public async Task<bool> DeleteByIds(object[] ids) { return await Db.Deleteable<TEntity>().In(ids).ExecuteCommandAsync() > 0; } /// <summary> /// 查询所有数据 /// </summary> /// <returns></returns> public async Task<List<TEntity>> Query() { return await Db.Queryable<TEntity>().ToListAsync(); } /// <summary> /// 根据ID查询一条数据 /// </summary> /// <param name="objId"></param> /// <returns></returns> public async Task<TEntity> QueryByID(object objId) { return await Db.Queryable<TEntity>().InSingleAsync(objId); } /// <summary> /// 更新实体数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<bool> Update(TEntity model) { return await Db.Updateable(model).ExecuteCommandAsync() > 0; } }
- 在IServices中新增Base文件夹,并添加基类接口IBaseServices.cs
public interface IBaseServices<TEntity> where TEntity : class { /// <summary> /// 根据ID列表查询 /// </summary> /// <param name="objId">ID</param> /// <returns></returns> Task<TEntity> QueryByID(object objId); /// <summary> /// 查询所有数据 /// </summary> /// <returns></returns> Task<List<TEntity>> Query(); /// <summary> /// 添加 /// </summary> /// <param name="model"></param> /// <returns></returns> Task<long> Add(TEntity model); /// <summary> /// 修改 /// </summary> /// <param name="model"></param> /// <returns></returns> Task<bool> Update(TEntity model); /// <summary> /// 根据ID列表删除 /// </summary> /// <param name="ids"></param> /// <returns></returns> Task<bool> DeleteByIds(object[] ids); /// <summary> /// 根据ID删除 /// </summary> /// <param name="id"></param> /// <returns></returns> Task<bool> DeleteById(object id); }
- 在Services层中,添加Base文件夹,并添加BaseServices.cs基类
public class BaseServices<TEntity> : IBaseServices<TEntity> where TEntity : class,new() { public IBaseRepository<TEntity> baseDal = new BaseRepository<TEntity>(); /// <summary> /// 写入实体 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<long> Add(TEntity model) { return await baseDal.Add(model); } /// <summary> /// 根据ID删除数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public async Task<bool> DeleteById(object id) { return await baseDal.DeleteById(id); } /// <summary> /// 根据ID列表删除数据 /// </summary> /// <param name="ids"></param> /// <returns></returns> public async Task<bool> DeleteByIds(object[] ids) { return await baseDal.DeleteByIds(ids); } /// <summary> /// 查询所有数据 /// </summary> /// <returns></returns> public async Task<List<TEntity>> Query() { return await baseDal.Query(); } /// <summary> /// 根据ID查询一条数据 /// </summary> /// <param name="objId"></param> /// <returns></returns> public async Task<TEntity> QueryByID(object objId) { return await baseDal.QueryByID(objId); } /// <summary> /// 更新实体数据 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<bool> Update(TEntity model) { return await baseDal.Update(model); } }
- 在Entity中添加Student.cs学生实体
/// <summary> /// 学生 /// </summary> public class Student { /// <summary> /// ID /// </summary> public string ID { get; set; } /// <summary> /// 姓名 /// </summary> public string Name { get; set; } /// <summary> /// 年龄 /// </summary> public int Age { get; set; } }
-
在IRepository层中,新建IStudentRepository接口,继承自IBaseRepository<Student>
public interface IStudentRepository:IBaseRepository<Student> { }
- 在Repository层中,新建StudentRepository接口,继承自BaseRepository<Student>,IStudentRepository
public class StudentRepositoty :BaseRepository<Student>,IStudentRepository { }
- 在IServices层中,新建IStudentService接口,继承自IBaseServices<Student>
public interface IStudentServices : IBaseServices<Student> { }
- 在Services层中,新建StudentService接口,继承自BaseService<Student>,IStudentService
public class StudentServices:BaseServices<Student>,IStudentServices { }
-
新建控制器StudentController,新增接口
public class StudentController : BaseController { private readonly IStudentServices stuService; /// <summary> /// 构造函数 /// </summary> /// <param name="studentServices"></param> public StudentController(IStudentServices studentServices) { stuService = studentServices; } /// <summary> /// 添加学生数据 /// </summary> /// <param name="student"></param> /// <returns></returns> [HttpPost] public async Task<IActionResult> AddAsync(Student student) { var count = await stuService.Add(student); return Ok(count); } }
-
运行项目,插入数据成功。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容