refactor: 更新MongoDB数据库连接字符串支持多个库同时使用

This commit is contained in:
Argo Zhang 2019-08-30 09:22:03 +08:00 committed by Argo Zhang
parent ea0bd37405
commit 41909dd4ba
No known key found for this signature in database
GPG Key ID: 152E398953DDF19F
8 changed files with 52 additions and 48 deletions

View File

@ -15,7 +15,6 @@
"ConnectionStrings": { "ConnectionStrings": {
"ba": "Data Source=.;Initial Catalog=BootstrapAdmin;User ID=sa;Password=sa" "ba": "Data Source=.;Initial Catalog=BootstrapAdmin;User ID=sa;Password=sa"
}, },
"MongoDB": "BootstrapAdmin",
"DB": [ "DB": [
{ {
"Enabled": false "Enabled": false
@ -28,25 +27,25 @@
} }
}, },
{ {
"Enabled": true, "Enabled": false,
"ProviderName": "MySql", "ProviderName": "MySql",
"ConnectionStrings": { "ConnectionStrings": {
"ba": "Server=localhost;Database=BA;Uid=argozhang;Pwd=argo@163.com;SslMode=none;" "ba": "Server=localhost;Database=BA;Uid=argozhang;Pwd=argo@163.com;SslMode=none;"
} }
}, },
{ {
"Enabled": true, "Enabled": false,
"ProviderName": "Npgsql", "ProviderName": "Npgsql",
"ConnectionStrings": { "ConnectionStrings": {
"ba": "Server=localhost;Database=BootstrapAdmin;User ID=argozhang;Password=argo@163.com;" "ba": "Server=localhost;Database=BootstrapAdmin;User ID=argozhang;Password=argo@163.com;"
} }
}, },
{ {
"Enabled": true, "Enabled": false,
"Widget": "Bootstrap.DataAccess.MongoDB", "Widget": "Bootstrap.DataAccess.MongoDB",
"ProviderName": "MongoDB", "ProviderName": "MongoDB",
"ConnectionStrings": { "ConnectionStrings": {
"ba": "mongodb://localhost:27017" "ba": "mongodb://localhost:27017;Database=BootstrapAdmin"
} }
} }
], ],

View File

@ -9,7 +9,7 @@ using MongoDB.Driver;
namespace Bootstrap.Client.DataAccess.MongoDB namespace Bootstrap.Client.DataAccess.MongoDB
{ {
/// <summary> /// <summary>
/// /// 数据库操作类
/// </summary> /// </summary>
internal static class DbManager internal static class DbManager
{ {
@ -20,7 +20,7 @@ namespace Bootstrap.Client.DataAccess.MongoDB
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
private static IMongoDatabase DBAccess private static IMongoDatabase BADatabase
{ {
get get
{ {
@ -34,7 +34,8 @@ namespace Bootstrap.Client.DataAccess.MongoDB
ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null); ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null);
InitClassMap(); InitClassMap();
} }
InitDb(); if (_db == null)
InitDb("ba");
} }
} }
return _db; return _db;
@ -43,65 +44,66 @@ namespace Bootstrap.Client.DataAccess.MongoDB
#region Collections #region Collections
/// <summary> /// <summary>
/// /// Dicts 集合
/// </summary> /// </summary>
public static IMongoCollection<BootstrapDict> Dicts public static IMongoCollection<BootstrapDict> Dicts
{ {
get get
{ {
return DBAccess.GetCollection<BootstrapDict>("Dicts"); return BADatabase.GetCollection<BootstrapDict>("Dicts");
} }
} }
/// <summary> /// <summary>
/// /// Users 集合
/// </summary> /// </summary>
public static IMongoCollection<User> Users public static IMongoCollection<User> Users
{ {
get get
{ {
return DBAccess.GetCollection<User>("Users"); return BADatabase.GetCollection<User>("Users");
} }
} }
/// <summary> /// <summary>
/// /// Roles 集合
/// </summary> /// </summary>
public static IMongoCollection<Role> Roles public static IMongoCollection<Role> Roles
{ {
get get
{ {
return DBAccess.GetCollection<Role>("Roles"); return BADatabase.GetCollection<Role>("Roles");
} }
} }
/// <summary> /// <summary>
/// /// Groups 集合
/// </summary> /// </summary>
public static IMongoCollection<Group> Groups public static IMongoCollection<Group> Groups
{ {
get get
{ {
return DBAccess.GetCollection<Group>("Groups"); return BADatabase.GetCollection<Group>("Groups");
} }
} }
/// <summary> /// <summary>
/// /// Menus 集合
/// </summary> /// </summary>
public static IMongoCollection<BootstrapMenu> Menus public static IMongoCollection<BootstrapMenu> Menus
{ {
get get
{ {
return DBAccess.GetCollection<BootstrapMenu>("Navigations"); return BADatabase.GetCollection<BootstrapMenu>("Navigations");
} }
} }
#endregion #endregion
private static void InitDb() private static void InitDb(string name = null)
{ {
var client = new MongoClient(Longbow.Data.DbManager.GetConnectionString("ba")); var (connectString, databaseName) = Longbow.Data.DbManager.GetMongoDB(name);
_db = client.GetDatabase(ConfigurationManager.AppSettings["MongoDB"]); var client = new MongoClient(connectString);
_db = client.GetDatabase(databaseName);
} }
private static void InitClassMap() private static void InitClassMap()

View File

@ -5,7 +5,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Longbow.Data" Version="2.3.3" /> <PackageReference Include="Longbow.Data" Version="2.3.4" />
<PackageReference Include="Longbow.Logging" Version="2.2.12" /> <PackageReference Include="Longbow.Logging" Version="2.2.12" />
<PackageReference Include="Bootstrap.Security.Mvc" Version="2.2.13" /> <PackageReference Include="Bootstrap.Security.Mvc" Version="2.2.13" />
</ItemGroup> </ItemGroup>

View File

@ -36,7 +36,8 @@
"Widget": "Bootstrap.Client.DataAccess.MongoDB", "Widget": "Bootstrap.Client.DataAccess.MongoDB",
"ProviderName": "MongoDB", "ProviderName": "MongoDB",
"ConnectionStrings": { "ConnectionStrings": {
"ba": "mongodb://localhost:27017" "ba": "mongodb://localhost:27017;Database=BootstrapAdmin",
"client": "mongodb://localhost:27017;Database=BootstrapClient"
} }
} }
], ],

View File

@ -29,11 +29,11 @@
} }
}, },
{ {
"Enabled": true, "Enabled": false,
"Widget": "Bootstrap.Client.DataAccess.MongoDB", "Widget": "Bootstrap.Client.DataAccess.MongoDB",
"ProviderName": "MongoDB", "ProviderName": "MongoDB",
"ConnectionStrings": { "ConnectionStrings": {
"ba": "mongodb://localhost:27017" "ba": "mongodb://localhost:27017;Database=BootstrapAdmin"
} }
} }
], ],

View File

@ -9,7 +9,7 @@ using MongoDB.Driver;
namespace Bootstrap.DataAccess.MongoDB namespace Bootstrap.DataAccess.MongoDB
{ {
/// <summary> /// <summary>
/// /// 数据库操作类
/// </summary> /// </summary>
internal static class DbManager internal static class DbManager
{ {
@ -18,7 +18,7 @@ namespace Bootstrap.DataAccess.MongoDB
private static readonly object _locker = new object(); private static readonly object _locker = new object();
/// <summary> /// <summary>
/// /// IMongoDatabase 实例
/// </summary> /// </summary>
private static IMongoDatabase DBAccess private static IMongoDatabase DBAccess
{ {
@ -34,6 +34,7 @@ namespace Bootstrap.DataAccess.MongoDB
ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null); ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null);
InitClassMap(); InitClassMap();
} }
if (_db == null)
InitDb(); InitDb();
} }
} }
@ -43,7 +44,7 @@ namespace Bootstrap.DataAccess.MongoDB
#region Collections #region Collections
/// <summary> /// <summary>
/// /// Logs 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.Log> Logs public static IMongoCollection<DataAccess.Log> Logs
{ {
@ -54,7 +55,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Exceptions 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.Exceptions> Exceptions public static IMongoCollection<DataAccess.Exceptions> Exceptions
{ {
@ -64,7 +65,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
} }
/// <summary> /// <summary>
/// /// Dicts 集合
/// </summary> /// </summary>
public static IMongoCollection<BootstrapDict> Dicts public static IMongoCollection<BootstrapDict> Dicts
{ {
@ -75,7 +76,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Users 集合
/// </summary> /// </summary>
public static IMongoCollection<User> Users public static IMongoCollection<User> Users
{ {
@ -86,7 +87,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Groups 集合
/// </summary> /// </summary>
public static IMongoCollection<Group> Groups public static IMongoCollection<Group> Groups
{ {
@ -97,7 +98,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Roles 集合
/// </summary> /// </summary>
public static IMongoCollection<Role> Roles public static IMongoCollection<Role> Roles
{ {
@ -108,7 +109,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Menus 集合
/// </summary> /// </summary>
public static IMongoCollection<BootstrapMenu> Menus public static IMongoCollection<BootstrapMenu> Menus
{ {
@ -119,7 +120,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// LoginUsers 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.LoginUser> LoginUsers public static IMongoCollection<DataAccess.LoginUser> LoginUsers
{ {
@ -130,7 +131,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// ResetUsers 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.ResetUser> ResetUsers public static IMongoCollection<DataAccess.ResetUser> ResetUsers
{ {
@ -141,7 +142,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Traces 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.Trace> Traces public static IMongoCollection<DataAccess.Trace> Traces
{ {
@ -152,7 +153,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// RejectUsers 集合
/// </summary> /// </summary>
public static IMongoCollection<RejectUser> RejectUsers public static IMongoCollection<RejectUser> RejectUsers
{ {
@ -163,7 +164,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Messages 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.Message> Messages public static IMongoCollection<DataAccess.Message> Messages
{ {
@ -174,7 +175,7 @@ namespace Bootstrap.DataAccess.MongoDB
} }
/// <summary> /// <summary>
/// /// Tasks 集合
/// </summary> /// </summary>
public static IMongoCollection<DataAccess.Task> Tasks public static IMongoCollection<DataAccess.Task> Tasks
{ {
@ -187,8 +188,9 @@ namespace Bootstrap.DataAccess.MongoDB
private static void InitDb() private static void InitDb()
{ {
var client = new MongoClient(Longbow.Data.DbManager.GetConnectionString()); var (connectString, databaseName) = Longbow.Data.DbManager.GetMongoDB();
_db = client.GetDatabase(ConfigurationManager.AppSettings["MongoDB"]); var client = new MongoClient(connectString);
_db = client.GetDatabase(databaseName);
} }
private static void InitClassMap() private static void InitClassMap()

View File

@ -6,7 +6,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Bootstrap.Security.DataAccess" Version="2.2.12" /> <PackageReference Include="Bootstrap.Security.DataAccess" Version="2.2.12" />
<PackageReference Include="Longbow.Data" Version="2.3.3" /> <PackageReference Include="Longbow.Data" Version="2.3.4" />
<PackageReference Include="Longbow.Logging" Version="2.2.12" /> <PackageReference Include="Longbow.Logging" Version="2.2.12" />
<PackageReference Include="Longbow.PetaPoco" Version="1.0.2" /> <PackageReference Include="Longbow.PetaPoco" Version="1.0.2" />
<PackageReference Include="Longbow.Security.Cryptography" Version="1.3.0" /> <PackageReference Include="Longbow.Security.Cryptography" Version="1.3.0" />

View File

@ -7,7 +7,7 @@ namespace Bootstrap.DataAccess
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
internal static class DbManager public static class DbManager
{ {
/// <summary> /// <summary>
/// ///