修复命令行迁移bug升级到7.x.1.2 [#229]
This commit is contained in:
parent
fc0781a313
commit
be652568c3
|
@ -1,10 +1,10 @@
|
|||
:start
|
||||
::定义版本
|
||||
set EFCORE7=7.7.1.1
|
||||
set EFCORE6=7.6.1.1
|
||||
set EFCORE5=7.5.1.1
|
||||
set EFCORE3=7.3.1.1
|
||||
set EFCORE2=7.2.1.1
|
||||
set EFCORE7=7.7.1.2
|
||||
set EFCORE6=7.6.1.2
|
||||
set EFCORE5=7.5.1.2
|
||||
set EFCORE3=7.3.1.2
|
||||
set EFCORE2=7.2.1.2
|
||||
|
||||
::删除所有bin与obj下的文件
|
||||
@echo off
|
||||
|
|
|
@ -7,6 +7,8 @@ using Microsoft.EntityFrameworkCore.Metadata;
|
|||
using Sample.MySql.Domain.Entities;
|
||||
using Sample.MySql.Domain.Maps;
|
||||
using ShardingCore.Core.VirtualRoutes.TableRoutes.RouteTails.Abstractions;
|
||||
using ShardingCore.EFCores;
|
||||
using ShardingCore.Extensions;
|
||||
using ShardingCore.Sharding;
|
||||
using ShardingCore.Sharding.Abstractions;
|
||||
|
||||
|
@ -16,6 +18,7 @@ namespace Sample.MySql.DbContexts
|
|||
{
|
||||
public DbSet<DynamicTable> DynamicTables { get; set; }
|
||||
public DbSet<SysUserMod> SysUserMod { get; set; }
|
||||
|
||||
public DefaultShardingDbContext(DbContextOptions<DefaultShardingDbContext> options) : base(options)
|
||||
{
|
||||
//切记不要在构造函数中使用会让模型提前创建的方法
|
||||
|
@ -23,11 +26,11 @@ namespace Sample.MySql.DbContexts
|
|||
//Database.SetCommandTimeout(30000);
|
||||
}
|
||||
|
||||
// protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
// {
|
||||
// base.OnConfiguring(optionsBuilder);
|
||||
// optionsBuilder.UseLazyLoadingProxies();
|
||||
// }
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
base.OnConfiguring(optionsBuilder);
|
||||
this.GetShardingRuntimeContext().GetOrCreateShardingRuntimeModel(this);
|
||||
}
|
||||
|
||||
private readonly MethodInfo? _configureGlobalFiltersMethodInfo =
|
||||
typeof(DefaultShardingDbContext).GetMethod(nameof(ConfigureGlobalFilters),
|
||||
|
@ -72,6 +75,5 @@ namespace Sample.MySql.DbContexts
|
|||
}
|
||||
|
||||
public IRouteTail RouteTail { get; set; }
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Internal;
|
||||
using ShardingCore.Extensions;
|
||||
|
||||
namespace ShardingCore.EFCores
|
||||
{
|
||||
public class ShardingDbSetInitializer:DbSetInitializer
|
||||
{
|
||||
#if !EFCORE2
|
||||
public ShardingDbSetInitializer(IDbSetFinder setFinder, IDbSetSource setSource) : base(setFinder, setSource)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#if EFCORE2
|
||||
public ShardingDbSetInitializer(IDbSetFinder setFinder, IDbSetSource setSource, IDbQuerySource querySource) : base(setFinder, setSource, querySource)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
public override void InitializeSets(DbContext context)
|
||||
{
|
||||
base.InitializeSets(context);
|
||||
if (context.IsShellDbContext())
|
||||
{
|
||||
context.GetShardingRuntimeContext().GetOrCreateShardingRuntimeModel(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -20,12 +20,15 @@ namespace ShardingCore.Extensions
|
|||
{
|
||||
public static class ShardingDbContextExtension
|
||||
{
|
||||
public static bool IsShellDbContext(this DbContext dbContext)
|
||||
{
|
||||
return dbContext.GetService<IDbContextOptions>().FindExtension<ShardingWrapOptionsExtension>()!=null;
|
||||
}
|
||||
public static IShardingDbContextExecutor CreateShardingDbContextExecutor<TDbContext>(
|
||||
this TDbContext shellDbContext)
|
||||
where TDbContext:DbContext,IShardingDbContext
|
||||
{
|
||||
var shardingWrapOptionsExtension = shellDbContext.GetService<IDbContextOptions>().FindExtension<ShardingWrapOptionsExtension>();
|
||||
if (shardingWrapOptionsExtension != null)
|
||||
if (shellDbContext.IsShellDbContext())
|
||||
{
|
||||
return new ShardingDbContextExecutor(shellDbContext);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ namespace ShardingCore.Sharding.ShardingDbContextExecutors
|
|||
_shardingDbContext = shardingDbContext;
|
||||
//初始化
|
||||
_shardingRuntimeContext = shardingDbContext.GetShardingRuntimeContext();
|
||||
_shardingRuntimeContext.GetOrCreateShardingRuntimeModel(shardingDbContext);
|
||||
// _shardingRuntimeContext.GetOrCreateShardingRuntimeModel(shardingDbContext);
|
||||
_shardingConfigOptions = _shardingRuntimeContext.GetShardingConfigOptions();
|
||||
_virtualDataSource = _shardingRuntimeContext.GetVirtualDataSource();
|
||||
_dataSourceRouteManager = _shardingRuntimeContext.GetDataSourceRouteManager();
|
||||
|
|
|
@ -224,6 +224,7 @@ namespace ShardingCore
|
|||
.UseShardingMigrator()
|
||||
.UseShardingOptions(shardingRuntimeContext)
|
||||
.ReplaceService<IQueryCompiler, ShardingQueryCompiler>()
|
||||
.ReplaceService<IDbSetInitializer, ShardingDbSetInitializer>()
|
||||
.ReplaceService<IChangeTrackerFactory, ShardingChangeTrackerFactory>()
|
||||
.ReplaceService<IDbContextTransactionManager,ShardingRelationalTransactionManager>()
|
||||
.ReplaceService<IStateManager,ShardingStateManager>()
|
||||
|
|
Loading…
Reference in New Issue