diff --git a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj index c66fbf4926a8492170911148fff39b19a5f8033d..5667e4e9f7220a94f6057df7867abab43198d03a 100644 --- a/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj +++ b/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj @@ -27,7 +27,7 @@ - + diff --git a/Admin.NET/Admin.NET.Core/AdminNETConfig.json b/Admin.NET/Admin.NET.Core/AdminNETConfig.json index 568b3ddb8a66effce728b4fe471ff4af81ec1ef7..aea944f3f51ff4ec28c90497075d62950431a1ee 100644 --- a/Admin.NET/Admin.NET.Core/AdminNETConfig.json +++ b/Admin.NET/Admin.NET.Core/AdminNETConfig.json @@ -14,7 +14,7 @@ "InjectSpecificationDocument": true // 生产环境是否开启Swagger }, "ConnectionStrings": { - "DefaultConnection": "DataSource=C:\\Admin.NET.db", // "server=127.0.0.1;uid=sa;pwd=123456;database=db;MultipleActiveResultSets=True", + "DefaultConnection": "DataSource=./Admin.Net.db", // "server=127.0.0.1;uid=sa;pwd=123456;database=db;MultipleActiveResultSets=True", "DefaultDbType": "Sqlite", // MySql、SqlServer、Sqlite、Oracle、PostgreSQL、Dm、Kdbndp、Oscar、MySqlConnector、Access "InitTable": true, "DbConfigs": [ diff --git a/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs b/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs index 3ca9e8d747322226e5ed75cce90603b04518879f..ea2830c1cc7da7ce7545d540dc09b66e7be6e19e 100644 --- a/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs +++ b/Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs @@ -1,6 +1,7 @@ using Admin.NET.Core.Service; using Furion; using Furion.FriendlyException; +using Furion.LinqBuilder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using SqlSugar; @@ -8,10 +9,12 @@ using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.IO; using System.Linq; using System.Linq.Dynamic.Core; using System.Linq.Expressions; using System.Reflection; +using System.Text.RegularExpressions; namespace Admin.NET.Core { @@ -25,6 +28,8 @@ namespace Admin.NET.Core public static void AddSqlSugarSetup(this IServiceCollection services, IConfiguration configuration) { var dbOptions = App.GetOptions(); + //处理Sqlite链接字符串为"./Admin.Net.db"报错的情况 + DealConnectionStr(ref dbOptions); List configs = new List(); var configureExternalServices = new ConfigureExternalServices { @@ -42,6 +47,8 @@ namespace Admin.NET.Core } }, }; + + var defaultConnection = new ConnectionConfig() { DbType = (DbType)Convert.ToInt32(Enum.Parse(typeof(DbType), dbOptions.DefaultDbType)), @@ -138,11 +145,29 @@ namespace Admin.NET.Core InitDataBase(sqlSugar); } + public static void DealConnectionStr(ref ConnectionStringsOptions dbOptions) + { + if (dbOptions.DefaultDbType.Trim().ToLower() == "sqlite" && dbOptions.DefaultConnection.Contains("./")) + { + var file = Path.GetFileName(dbOptions.DefaultConnection.Replace("DataSource=", "")); + dbOptions.DefaultConnection = $"DataSource={Environment.CurrentDirectory.Replace(@"\bin\Debug", "")}\\{file}"; + } + if (dbOptions.DbConfigs == null) + dbOptions.DbConfigs = new List(); + dbOptions.DbConfigs.ForEach(cofing => { + if (cofing.DbType.Trim().ToLower() == "sqlite" && cofing.DbConnection.Contains("./")) + { + var file = Path.GetFileName(cofing.DbConnection.Replace("DataSource=", "")); + cofing.DbConnection = $"DataSource={Environment.CurrentDirectory.Replace(@"\bin\Debug", "")}\\{file}"; + } + }); + } + /// /// 初始化数据库结构 /// public static void InitDataBase(SqlSugarScope db) - { + { // 不存在则创建数据库 db.DbMaintenance.CreateDatabase();