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();