refactor: 更新MongoDB数据库连接字符串支持多个库同时使用
This commit is contained in:
parent
ea0bd37405
commit
41909dd4ba
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
@ -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,7 +34,8 @@ namespace Bootstrap.DataAccess.MongoDB
|
||||||
ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null);
|
ChangeToken.OnChange(() => ConfigurationManager.AppSettings.GetReloadToken(), () => _db = null);
|
||||||
InitClassMap();
|
InitClassMap();
|
||||||
}
|
}
|
||||||
InitDb();
|
if (_db == null)
|
||||||
|
InitDb();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return _db;
|
return _db;
|
||||||
|
@ -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()
|
||||||
|
|
|
@ -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" />
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace Bootstrap.DataAccess
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static class DbManager
|
public static class DbManager
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
|
Loading…
Reference in New Issue