我的第一个 netcore2.2 API 项目搭建 (一)
早早就想入门 netcore, 一直没下定决心, 这次正好碰上项目服务变更, 便想着入坑试试, 边学边用.
目标:
一. API 使用 core 版的 SqlSugar, 集成 ORM, 实现快速开发
二. API 使用 Swagger, 实现 API 文档管理
三. API 添加身份验证功能
开发环境:
Win10,VS2017,oracle11g
一. API 使用 core 版的 SqlSugar, 集成 ORM, 实现快速开
1.1 一步一步来, 很简单
F5 运行 <喎"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"https://www.2cto.com/uploadfile/Collfiles/20190509/20190509134040455.png" alt="\" />
初步搭建完成.
1.2 添加 SqlSugar 项目
下载地址: https://github.com/sunkaixuan/SqlSugar
下载后解压, 将 Asp.NetCore2 里的 SqlSugar 文件夹拷贝到 API 项目根目录下, 解决方案添加 SqlSugar 项目.
1.3 添加其他项目
总体依赖关系:
JH.OPEMR.DBUtility:SqlSugar,JH.OPEMR.Model 实现 db 实例化, 供业务层调用
JH.OPEMR.BLL:JH.OPEMR.DBUtility,JH.OPEMR.Model,JH.OPEMR.Common 业务层, 供视图 或 API 层调用
JH.OPEMR.API:JH.OPEMR.BLL,JH.OPEMR.Model,JH.OPEMR.Common
JH.OPEMR.DBUtility 层:
该层主要提供 db 上下文, 给业务层调用, 使用官方提供的上下文即可
全部代码:
using SqlSugar; using System; using System.Collections.Generic; using System.Text; namespace JH.OPEMR.DBUtility { public class DbContext where T : class, new() { public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "Data Source=192.168.11.43/xxx;User ID=xx;Password=xx;", DbType = DbType.Oracle, InitKeyType = InitKeyType.Attribute,// 从特性读取主键和自增列信息 IsAutoCloseConnection = true,// 开启自动释放模式和 EF 原理一样我就不多解释了 }); // 调式代码 用来打印 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 SqlSugarClient Db;// 用来处理事务多表查询和复杂的操作 public SimpleClient StudentDb { get { return new SimpleClient(Db); } }// public SimpleClient CurrentDb { get { return new SimpleClient(Db); } }// 用来处理 T 表的常用操作 ///
- /// 获取所有 ///
- /// public virtual List GetList() {
- return CurrentDb.GetList();
- } ///
- /// 根据主键删除 ///
- /// /// public virtual bool Delete(dynamic id) {
- return CurrentDb.Delete(id);
- } ///
- /// 更新 ///
- /// /// public virtual bool Update(T obj) {
- return CurrentDb.Update(obj);
- } } } View Code
JH.OPEMR.BLL 层:
新建了 BaseBLL 类, 该类继承上下文, 可自行扩展方法, 现在什么方法都没, 只是为了提供给其他业务层调用, 或者 API 直接调用, 然后其他业务类可以继承该类, 其他业务类就统一归基类管制了
User 表的业务层:
ok, 到这里, db 层和业务层基本搭建完成, 在 API 层测试下看看:
将原有的 values 根据 id 获取的方法改造下, F5 运行, 结果如下:
至此, 第一个目标完成!!
来源: https://www.2cto.com/kf/201905/807978.html