WebApi Swagger基础上使用Sqlsugar
程序员文章站
2022-05-17 19:05:54
...
第一步:
在startup.cs文件中 注册sqlsugar
第二步:
新建DBContext.cs文件,代码如下:
using SqlSugar;
using System;
using System.Linq;
namespace FirstApi
{
public class DBContext
{
private string connectionString = null;
private DbType dbType = DbType.SqlServer;
public static string DB_ConnectionString { get; set; }
public static DbType DB_dbType { get; set; }
public DBContext() : this(DB_dbType, DB_ConnectionString)
{
}
//public DBContext(string dbType) : this((DbType)Enum.Parse(typeof(DbType), dbType), DB_ConnectionString)
//{
//}
public DBContext(string dbType, string connectionString) : this((DbType)Enum.Parse(typeof(DbType), dbType), DB_ConnectionString)
{
}
public DBContext(DbType DB_dbType, string DB_ConnectionString)
{
//this.connectionString = connectionString;
this.connectionString = DB_ConnectionString;
this.dbType = DB_dbType;
this.Database = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = this.connectionString,
DbType = this.dbType,
//DbType = dbType,
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute
});
//调式代码 用来打印SQL
this.Database.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql + "\r\n" +
this.Database.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
Console.WriteLine();
};
this.Database.Ado.IsEnableLogEvent = true;
}
public SqlSugarClient Database { get; private set; }
}
}
第三步:
在项目下新建一个文件夹,命名为T4
第四步:
在T4下新建一个“文本文件”,并将后缀改为.tt
打开此test.tt文件,将以下代码复制进去【数据库连接信息等需要修改】:
<#@ template debug="true" hostspecific="true" language="C#" #>
<#@ assembly name="$(SolutionDir)\CYM.Lib\Newtonsoft.Json.dll" #>
<#@ assembly name="$(SolutionDir)\CYM.Lib\SqlSugar.dll" #>
<#@ assembly name="$(SolutionDir)\CYM.Lib\Oracle.ManagedDataAccess.dll" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ assembly name="System.Core" #>
<#@ assembly name="System.Xml" #>
<#@ assembly name="System.Xml.Linq" #>
<#@ assembly name="System.Data" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="SqlSugar" #>
<#@ import namespace="Newtonsoft.Json" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Web" #>
<#
//CTRL+S将会执行该文件的代码,自动作生实体
//当前项目目录
string projectDir = Host.ResolveAssemblyReference("$(ProjectDir)");
//解决方案目录
string solutionDir = Host.ResolveAssemblyReference("$(SolutionDir)");
var db = new SqlSugarClient(new ConnectionConfig() {
ConnectionString = @"Data Source=localhost/ORCL;Persist Security Info=True;User ID=scott;Password=tiger",
DbType = SqlSugar.DbType.Oracle,
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute});
List<DbTableInfo> list = db.DbMaintenance.GetTableInfoList();
List<DbTableInfo> viewList = db.DbMaintenance.GetViewInfoList();
//表
foreach (DbTableInfo table in list)
{
string table_name =StringUtil.ToCase(table.Name);
db.MappingTables.Add(table_name, table.Name);
List<DbColumnInfo> dd = db.DbMaintenance.GetColumnInfosByTableName(table.Name);
foreach (DbColumnInfo item in dd)
{
db.MappingColumns.Add(StringUtil.ToCase(item.DbColumnName), item.DbColumnName, table_name);
}
db.DbFirst.IsCreateAttribute().Where(table.Name).CreateClassFile(projectDir+"\\Models\\TableModel","FirstApi.Models.TableModel");
}
//视图
for (int i =0;i< viewList.Count;i++)
{
DbTableInfo table=viewList[i];
string table_name =StringUtil .ToCase(table.Name);
db.MappingTables.Add(table_name, table.Name);
List<DbColumnInfo> dd = db.DbMaintenance.GetColumnInfosByTableName(table.Name);
foreach (DbColumnInfo item in dd)
{
db.MappingColumns.Add(StringUtil .ToCase(item.DbColumnName), item.DbColumnName, table_name);
}
db.DbFirst.IsCreateAttribute().Where(table.Name).CreateClassFile(projectDir+"\\Models\\ViewModel","FirstApi.Models.ViewModel");
}
#>
<#+
public class StringUtil{
/// <summary>
/// 首字母转大写
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static string ToCase(string value)
{
if (string.IsNullOrEmpty(value))
{
return string.Empty;
}
string[] arry = value.Split('_');
string str = "";
foreach (string item in arry)
{
string newstr = item.Replace("(", "").Replace(".", "").Replace(")", "");
string firstLetter = newstr.Substring(0, 1);
string rest = newstr.Substring(1, newstr.Length - 1);
str += firstLetter.ToUpper() + rest+"_";
}
return str.Substring(0,str.Length - 1);
}
}
#>
注意:
这是哪个dll文件,需要复制粘贴进本项目文件夹中
第五步:
在此test.tt文件下ctrl+s,会自动生成TableModel和ViewModel,
分别对应指定数据库中的所有表和所有视图。
第六步:
在控制器文件夹下的cs文件里,进行sqlsugar等代码的编写,程序调试。
sqlsugar的基础语法和打印:
上一篇: Java基础相关(二、抽象类、接口)
下一篇: 腾讯云身份证接口的调用
推荐阅读
-
Asp.net core WebApi 使用Swagger生成帮助页实例
-
Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解
-
ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介
-
Asp.net core WebApi 使用Swagger生成帮助页实例
-
c# webapi结合swagger的使用
-
AspNetCore网关集成Swagger访问使用IdentityServer保护的webapi项目
-
C# WebAPI中使用Swagger
-
ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
-
asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件
-
Asp.Net Core2.0 WebAPI 使用Swagger生成漂亮的接口文档