12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using Infrastructure;
- using Infrastructure.Extensions;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using System.Threading.Tasks;
- namespace ZR.CodeGenerator
- {
- /// <summary>
- /// 代码生成数据库连接
- /// </summary>
- public class DbProvider
- {
- protected static SqlSugarClient CodeDb;
- /// <summary>
- /// 获取动态连接字符串
- /// </summary>
- /// <param name="dbName">数据库名</param>
- /// <returns></returns>
- public SqlSugarClient GetSugarDbContext(string dbName = "")
- {
- string connStr = AppSettings.GetConfig(GenConstants.Gen_conn);
- int dbType = AppSettings.GetAppConfig(GenConstants.Gen_conn_dbType, 0);
- if (!string.IsNullOrEmpty(dbName))
- {
- string replaceStr = GetValue(connStr, "Database=", ";");
- string replaceStr2 = GetValue(connStr, "Initial Catalog=", ";");
- if (replaceStr.IsNotEmpty())
- {
- connStr = connStr.Replace(replaceStr, dbName, StringComparison.OrdinalIgnoreCase);
- }
- if (replaceStr2.IsNotEmpty())
- {
- connStr = connStr.Replace(replaceStr2, dbName, StringComparison.OrdinalIgnoreCase);
- }
- }
- var db = new SqlSugarClient(new List<ConnectionConfig>()
- {
- new ConnectionConfig(){
- ConnectionString = connStr,
- DbType = (DbType)dbType,
- IsAutoCloseConnection = true,//开启自动释放模式和EF原理一样
- InitKeyType = InitKeyType.Attribute,//从特性读取主键和自增列信息
- },
- });
- CodeDb = db;
- return db;
- }
- /// <summary>
- /// 获得字符串中开始和结束字符串中间得值
- /// </summary>
- /// <param name="str">字符串</param>
- /// <param name="s">开始</param>
- /// <param name="e">结束</param>
- /// <returns></returns>
- public static string GetValue(string str, string s, string e)
- {
- Regex rg = new Regex("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);
- return rg.Match(str).Value;
- }
- }
- }
|