mirror of
https://gitee.com/ccnetcore/Yi
synced 2026-04-02 23:26:36 +08:00
配置文件开关,数据库读写分离
This commit is contained in:
@@ -5,37 +5,49 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Yi.Framework.Common.Const;
|
||||
using Yi.Framework.Common.IOCOptions;
|
||||
using Yi.Framework.Model.Models;
|
||||
|
||||
namespace Yi.Framework.Model
|
||||
{
|
||||
//Add-Migration yi-1
|
||||
//Update-Database yi-1
|
||||
public partial class DataContext : DbContext
|
||||
//Add-Migration yi-1
|
||||
//Update-Database yi-1
|
||||
public partial class DataContext : DbContext
|
||||
{
|
||||
private readonly IOptionsMonitor<MySqlConnOptions> _optionsMonitor;
|
||||
private readonly string _connStr;
|
||||
//private readonly IOptionsMonitor<MySqlConnOptions> _optionsMonitor;
|
||||
private string _connStr;
|
||||
public static string DbSelect = DbConst.Mysql;
|
||||
//public DataContext(IOptionsMonitor<MySqlConnOptions> optionsMonitor)
|
||||
//{
|
||||
// _optionsMonitor = optionsMonitor;
|
||||
// _connStr = _optionsMonitor.CurrentValue.WriteUrl;
|
||||
//}
|
||||
public DbContext ToWriteOrRead(string connstr)
|
||||
{
|
||||
_connStr = connstr;
|
||||
return this;
|
||||
}
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
{
|
||||
switch (DbSelect)
|
||||
{
|
||||
case DbConst.Mysql:
|
||||
var serverVersion = new MySqlServerVersion(new Version(8, 0, 21));
|
||||
optionsBuilder.UseMySql(_connStr, serverVersion); break;
|
||||
case DbConst.Sqlite:
|
||||
optionsBuilder.UseSqlite(_connStr); break;
|
||||
case DbConst.Sqlserver:
|
||||
optionsBuilder.UseSqlServer(_connStr);break;
|
||||
case DbConst.Oracle:
|
||||
optionsBuilder.UseOracle(_connStr);break;
|
||||
default:
|
||||
Console.WriteLine("错误!请确保你选择了正确的数据库!");break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DataContext(IOptionsMonitor<MySqlConnOptions> optionsMonitor)
|
||||
{
|
||||
_optionsMonitor = optionsMonitor;
|
||||
_connStr = _optionsMonitor.CurrentValue.Url;
|
||||
}
|
||||
|
||||
public DataContext(string connstr)
|
||||
{
|
||||
_connStr = connstr;
|
||||
}
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
if (!optionsBuilder.IsConfigured)
|
||||
{
|
||||
//optionsBuilder.UseSqlite(_connStr);
|
||||
var serverVersion = new MySqlServerVersion(new Version(8, 0, 21));
|
||||
optionsBuilder.UseMySql(_connStr, serverVersion);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user