我的第一個netcore2.2 api項目搭建(一)


早早就想入門netcore,一直沒下定決心,這次正好碰上項目服務變更,便想着入坑試試,邊學邊用。

目標:

一.api使用core版的SqlSugar,集成orm,實現快速開發

二.api使用Swagger,實現api文檔管理

三.api添加身份驗證功能

 

開發環境:

Win10、VS2017、oracle11g

一.api使用core版的SqlSugar,集成orm,實現快速開

1.1一步一步來,很簡單

F5運行

初步搭建完成。

 

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<T> 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<Model.USERS> StudentDb { get { return new SimpleClient<Model.USERS>(Db); } }//
        public SimpleClient<T> CurrentDb { get { return new SimpleClient<T>(Db); } }//用來處理T表的常用操作

        /// <summary>
        /// 獲取所有
        /// </summary>
        /// <returns></returns>
        public virtual List<T> GetList()
        {
            return CurrentDb.GetList();
        }

        /// <summary>
        /// 根據主鍵刪除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual bool Delete(dynamic id)
        {
            return CurrentDb.Delete(id);
        }


        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual bool Update(T obj)
        {
            return CurrentDb.Update(obj);
        }

    }
}
View Code

 

JH.OPEMR.BLL層:

新建了BaseBLL類,該類繼承上下文,可自行擴展方法,現在什么方法都沒,只是為了提供給其他業務層調用,或者api直接調用,然后其他業務類可以繼承該類,其他業務類就統一歸基類管制了

User表的業務層:

 ok,到這里,db層和業務層基本搭建完成,在api層測試下看看:

將原有的values根據id獲取的方法改造下,F5運行,結果如下:

至此,第一個目標完成!!

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM