优化设置默认如果是启用了多配置的情况下
This commit is contained in:
parent
f2febbae4e
commit
2b99353bc5
|
@ -1,30 +1,13 @@
|
||||||
using System;
|
using BenchmarkDotNet.Attributes;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using BenchmarkDotNet.Attributes;
|
|
||||||
using BenchmarkDotNet.Jobs;
|
|
||||||
using EFCore.BulkExtensions;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using ShardingCore;
|
using ShardingCore;
|
||||||
using ShardingCore.Bootstrapers;
|
using ShardingCore.Bootstrapers;
|
||||||
using ShardingCore.Core.VirtualDatabase.VirtualDataSources;
|
|
||||||
using ShardingCore.Core.VirtualDatabase.VirtualTables;
|
using ShardingCore.Core.VirtualDatabase.VirtualTables;
|
||||||
using ShardingCore.Core.VirtualRoutes.DataSourceRoutes.RouteRuleEngine;
|
|
||||||
using ShardingCore.Core.VirtualRoutes.TableRoutes;
|
|
||||||
using ShardingCore.Core.VirtualRoutes.TableRoutes.RouteTails.Abstractions;
|
|
||||||
using ShardingCore.Core.VirtualRoutes.TableRoutes.RoutingRuleEngine;
|
|
||||||
using ShardingCore.Core.VirtualTables;
|
|
||||||
using ShardingCore.Exceptions;
|
|
||||||
using ShardingCore.Extensions;
|
using ShardingCore.Extensions;
|
||||||
using ShardingCore.Sharding;
|
|
||||||
using ShardingCore.Sharding.Abstractions;
|
|
||||||
using ShardingCore.Sharding.ShardingDbContextExecutors;
|
|
||||||
using ShardingCore6x.NoShardingDbContexts;
|
using ShardingCore6x.NoShardingDbContexts;
|
||||||
using ShardingCore6x.ShardingDbContexts;
|
using ShardingCore6x.ShardingDbContexts;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
|
|
||||||
namespace ShardingCore6x
|
namespace ShardingCore6x
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
:start
|
:start
|
||||||
::定义版本
|
::定义版本
|
||||||
set EFCORE2=2.4.0.01-preview2
|
set EFCORE2=2.4.0.01-preview3
|
||||||
set EFCORE3=3.4.0.01-preview2
|
set EFCORE3=3.4.0.01-preview3
|
||||||
set EFCORE5=5.4.0.01-preview2
|
set EFCORE5=5.4.0.01-preview3
|
||||||
set EFCORE6=6.4.0.01-preview2
|
set EFCORE6=6.4.0.01-preview3
|
||||||
|
|
||||||
::删除所有bin与obj下的文件
|
::删除所有bin与obj下的文件
|
||||||
@echo off
|
@echo off
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Sample.MultiConfig.Domain.Entities;
|
using Sample.MultiConfig.Domain.Entities;
|
||||||
|
using ShardingCore.Core.VirtualDatabase.VirtualTables;
|
||||||
|
|
||||||
namespace Sample.MultiConfig.Controllers
|
namespace Sample.MultiConfig.Controllers
|
||||||
{
|
{
|
||||||
|
@ -9,10 +10,12 @@ namespace Sample.MultiConfig.Controllers
|
||||||
public class TestController:ControllerBase
|
public class TestController:ControllerBase
|
||||||
{
|
{
|
||||||
private readonly MultiConfigDbContext _multiConfigDbContext;
|
private readonly MultiConfigDbContext _multiConfigDbContext;
|
||||||
|
private readonly IVirtualTableManager<MultiConfigDbContext> _virtualTableManager;
|
||||||
|
|
||||||
public TestController(MultiConfigDbContext multiConfigDbContext)
|
public TestController(MultiConfigDbContext multiConfigDbContext,IVirtualTableManager<MultiConfigDbContext> virtualTableManager)
|
||||||
{
|
{
|
||||||
_multiConfigDbContext = multiConfigDbContext;
|
_multiConfigDbContext = multiConfigDbContext;
|
||||||
|
_virtualTableManager = virtualTableManager;
|
||||||
}
|
}
|
||||||
public async Task<IActionResult> Add()
|
public async Task<IActionResult> Add()
|
||||||
{
|
{
|
||||||
|
|
|
@ -99,9 +99,9 @@ namespace ShardingCore.Bootstrapers
|
||||||
using (_virtualDataSourceManager.CreateScope(configId))
|
using (_virtualDataSourceManager.CreateScope(configId))
|
||||||
{
|
{
|
||||||
//var dataSourceName = _virtualDataSource.DefaultDataSourceName;
|
//var dataSourceName = _virtualDataSource.DefaultDataSourceName;
|
||||||
|
|
||||||
using var context =
|
using var context =
|
||||||
(DbContext)serviceScope.ServiceProvider.GetService(_shardingDbContextType);
|
(DbContext)serviceScope.ServiceProvider.GetService(_shardingDbContextType);
|
||||||
|
|
||||||
foreach (var entity in context.Model.GetEntityTypes())
|
foreach (var entity in context.Model.GetEntityTypes())
|
||||||
{
|
{
|
||||||
var entityType = entity.ClrType;
|
var entityType = entity.ClrType;
|
||||||
|
|
|
@ -43,9 +43,9 @@ namespace ShardingCore.Core.ShardingConfigurations.ConfigBuilders
|
||||||
throw new ArgumentNullException(
|
throw new ArgumentNullException(
|
||||||
$"{nameof(shardingGlobalConfigOptions.DefaultConnectionString)} plz call {nameof(ShardingConfigOptions<TShardingDbContext>.AddDefaultDataSource)}");
|
$"{nameof(shardingGlobalConfigOptions.DefaultConnectionString)} plz call {nameof(ShardingConfigOptions<TShardingDbContext>.AddDefaultDataSource)}");
|
||||||
|
|
||||||
if (shardingGlobalConfigOptions.ConnectionStringConfigure is null)
|
if (shardingGlobalConfigOptions.ConnectionStringConfigure is null&& ShardingCoreConfigBuilder.ShardingEntityConfigOptions.ConnectionStringConfigure is null)
|
||||||
throw new ArgumentNullException($"plz call {nameof(shardingGlobalConfigOptions.UseShardingQuery)}");
|
throw new ArgumentNullException($"plz call {nameof(shardingGlobalConfigOptions.UseShardingQuery)}");
|
||||||
if (shardingGlobalConfigOptions.ConnectionConfigure is null)
|
if (shardingGlobalConfigOptions.ConnectionConfigure is null && ShardingCoreConfigBuilder.ShardingEntityConfigOptions.ConnectionConfigure is null)
|
||||||
throw new ArgumentNullException(
|
throw new ArgumentNullException(
|
||||||
$"plz call {nameof(shardingGlobalConfigOptions.UseShardingTransaction)}");
|
$"plz call {nameof(shardingGlobalConfigOptions.UseShardingTransaction)}");
|
||||||
|
|
||||||
|
|
|
@ -140,8 +140,11 @@ namespace ShardingCore.Core.VirtualDatabase.VirtualDataSources
|
||||||
if (IsMultiShardingConfiguration && ShardingConfigurationStrategy == ShardingConfigurationStrategyEnum.ReturnHighPriority)
|
if (IsMultiShardingConfiguration && ShardingConfigurationStrategy == ShardingConfigurationStrategyEnum.ReturnHighPriority)
|
||||||
{
|
{
|
||||||
var maxShardingConfiguration = _virtualDataSources.Values.OrderByDescending(o => o.Priority).FirstOrDefault();
|
var maxShardingConfiguration = _virtualDataSources.Values.OrderByDescending(o => o.Priority).FirstOrDefault();
|
||||||
_defaultVirtualDataSource = maxShardingConfiguration;
|
if (maxShardingConfiguration.ConfigId != _defaultConfigId)
|
||||||
|
{
|
||||||
_defaultConfigId = maxShardingConfiguration.ConfigId;
|
_defaultConfigId = maxShardingConfiguration.ConfigId;
|
||||||
|
_defaultVirtualDataSource = maxShardingConfiguration;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue