Skip to content

Commit 5dcc700

Browse files
committed
IShardingRuntimeContext支持dbcontexttype区分
1 parent f0c3c33 commit 5dcc700

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

samples/Sample.MySql/Startup.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Microsoft.EntityFrameworkCore;
33
using Microsoft.EntityFrameworkCore.Migrations;
44
using Sample.MySql.DbContexts;
5+
using Sample.MySql.Domain.Entities;
56
using Sample.MySql.Shardings;
67
using ShardingCore;
78
using ShardingCore.Bootstrappers;
@@ -153,6 +154,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
153154
app.ApplicationServices.UseAutoShardingCreate();
154155
var shardingRuntimeContext = app.ApplicationServices.GetRequiredService<IShardingRuntimeContext>();
155156
var entityMetadataManager = shardingRuntimeContext.GetEntityMetadataManager();
157+
var entityMetadata = entityMetadataManager.TryGet<SysUserMod>();
156158
using (var scope = app.ApplicationServices.CreateScope())
157159
{
158160
var defaultShardingDbContext = scope.ServiceProvider.GetService<DefaultShardingDbContext>();

src/ShardingCore/Core/RuntimeContexts/IShardingRuntimeContext.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ namespace ShardingCore.Core.RuntimeContexts
2727

2828
public interface IShardingRuntimeContext
2929
{
30+
Type DbContextType { get; }
3031
IShardingProvider GetShardingProvider();
3132
ShardingConfigOptions GetShardingConfigOptions();
3233
IShardingRouteConfigOptions GetShardingRouteConfigOptions();

src/ShardingCore/Core/RuntimeContexts/ShardingRuntimeContext.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@ public sealed class ShardingRuntimeContext : IShardingRuntimeContext
3939
private IServiceCollection _serviceMap = new ServiceCollection();
4040

4141
private IServiceProvider _serviceProvider;
42+
public Type DbContextType { get; }
4243
// private ILoggerFactory _applicationLoggerFactory;
44+
public ShardingRuntimeContext(Type dbContextType)
45+
{
46+
DbContextType = dbContextType;
47+
}
4348

4449
public void AddServiceConfig(Action<IServiceCollection> configure)
4550
{
@@ -69,6 +74,7 @@ public void AutoShardingCreate()
6974
}
7075

7176
private IShardingProvider _shardingProvider;
77+
7278
public IShardingProvider GetShardingProvider()
7379
{
7480
return _shardingProvider??=GetRequiredService<IShardingProvider>();

src/ShardingCore/ShardingRuntimeBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public IShardingRuntimeContext Build(IServiceProvider appServiceProvider)
7373

7474
public IShardingRuntimeContext Build(IServiceProvider appServiceProvider, ILoggerFactory loggerFactory)
7575
{
76-
var shardingRuntimeContext = new ShardingRuntimeContext();
76+
var shardingRuntimeContext = new ShardingRuntimeContext(typeof(TShardingDbContext));
7777
shardingRuntimeContext.AddServiceConfig(services =>
7878
{
7979
// services.AddSingleton<IDbContextTypeCollector>(sp => new DbContextTypeCollector<TShardingDbContext>());

0 commit comments

Comments
 (0)