@@ -146,7 +146,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
146
146
var shardingRuntimeContext = dbContext . GetShardingRuntimeContext ( ) ;
147
147
var entityMetadataManager = shardingRuntimeContext . GetEntityMetadataManager ( ) ;
148
148
149
- #if EFCORE6
149
+ #if EFCORE6 || EFCORE7
150
150
var entityTypes = contextModel . GetEntityTypes ( ) ;
151
151
foreach ( var entityType in entityTypes )
152
152
{
@@ -156,8 +156,17 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
156
156
}
157
157
}
158
158
var contextModelRelationalModel = contextModel . GetRelationalModel ( ) as RelationalModel ;
159
+ foreach ( var keyValuePair in contextModelRelationalModel . Tables )
160
+ {
161
+ foreach ( var valueEntityTypeMapping in keyValuePair . Value . EntityTypeMappings )
162
+ {
163
+ var x = ! entityMetadataManager . IsOnlyShardingDataSource ( valueEntityTypeMapping . EntityType . ClrType ) ;
164
+ Console . WriteLine ( valueEntityTypeMapping . EntityType . ClrType ) ;
165
+ Console . WriteLine ( x ) ;
166
+ }
167
+ }
159
168
var valueTuples =
160
- contextModelRelationalModel . Tables . Where ( o => o . Value . EntityTypeMappings . Any ( m => ! entityMetadataManager . IsShardingDataSource ( m . EntityType . ClrType ) || entityMetadataManager . TryGet ( m . EntityType . ClrType ) == null ) ) . Select ( o => o . Key ) . ToList ( ) ;
169
+ contextModelRelationalModel . Tables . Where ( o => o . Value . EntityTypeMappings . Any ( m => ! entityMetadataManager . IsOnlyShardingDataSource ( m . EntityType . ClrType ) ) ) . Select ( o => o . Key ) . ToList ( ) ;
161
170
for ( int i = 0 ; i < valueTuples . Count ; i ++ )
162
171
{
163
172
contextModelRelationalModel . Tables . Remove ( valueTuples [ i ] ) ;
@@ -174,7 +183,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
174
183
}
175
184
var contextModelRelationalModel = contextModel . RelationalModel as RelationalModel ;
176
185
var valueTuples =
177
- contextModelRelationalModel . Tables . Where ( o => o . Value . EntityTypeMappings . Any ( m => ! entityMetadataManager . IsShardingDataSource ( m . EntityType . ClrType ) || entityMetadataManager . TryGet ( m . EntityType . ClrType ) == null ) ) . Select ( o => o . Key ) . ToList ( ) ;
186
+ contextModelRelationalModel . Tables . Where ( o => o . Value . EntityTypeMappings . Any ( m => ! entityMetadataManager . IsOnlyShardingDataSource ( m . EntityType . ClrType ) ) ) . Select ( o => o . Key ) . ToList ( ) ;
178
187
for ( int i = 0 ; i < valueTuples . Count ; i ++ )
179
188
{
180
189
contextModelRelationalModel . Tables . Remove ( valueTuples [ i ] ) ;
@@ -191,7 +200,7 @@ public static void RemoveDbContextAllRelationModelWithoutShardingDataSourceOnly(
191
200
_data . Clear ( ) ;
192
201
}
193
202
}
194
- var list = entityTypes . Where ( o => ! entityMetadataManager . IsShardingDataSource ( o . Value . ClrType ) || entityMetadataManager . TryGet ( o . Value . ClrType ) == null ) . Select ( o => o . Key ) . ToList ( ) ;
203
+ var list = entityTypes . Where ( o => ! entityMetadataManager . IsOnlyShardingDataSource ( o . Value . ClrType ) ) . Select ( o => o . Key ) . ToList ( ) ;
195
204
for ( int i = 0 ; i < list . Count ; i ++ )
196
205
{
197
206
entityTypes . Remove ( list [ i ] ) ;
@@ -216,7 +225,7 @@ public static void RemoveDbContextAllRelationModel(this DbContext dbContext)
216
225
var contextModel = dbContext . Model as Model ;
217
226
#endif
218
227
219
- #if EFCORE6
228
+ #if EFCORE6 || EFCORE7
220
229
var contextModelRelationalModel = contextModel . GetRelationalModel ( ) as RelationalModel ;
221
230
contextModelRelationalModel . Tables . Clear ( ) ;
222
231
#endif
0 commit comments