@@ -192,15 +192,23 @@ public static void RemoveDbContextAllRelationModel(this DbContext dbContext)
192192 public static void RemoveDbContextRelationModelSaveOnlyThatIsNamedType ( this DbContext dbContext ,
193193 Type shardingType )
194194 {
195- #if ! EFCORE2 && ! EFCORE3 && ! EFCORE5 && ! EFCORE6
196- throw new NotImplementedException ( ) ;
195+ #if ! EFCORE2 && ! EFCORE3 && ! EFCORE5 && ! EFCORE6
196+ 1
197197#endif
198198#if EFCORE2 || EFCORE3 || EFCORE5
199199
200200 var contextModel = dbContext . Model as Model ;
201201#endif
202202#if EFCORE6
203- var contextModel = dbContext . GetService < IDesignTimeModel > ( ) . Model ; ;
203+ var contextModel = dbContext . GetService < IDesignTimeModel > ( ) . Model ;
204+ var entityTypes = contextModel . GetEntityTypes ( ) ;
205+ foreach ( var entityType in entityTypes )
206+ {
207+ if ( entityType . GetFieldValue ( "_data" ) is List < object > _data )
208+ {
209+ _data . Clear ( ) ;
210+ }
211+ }
204212 var contextModelRelationalModel = contextModel . GetRelationalModel ( ) as RelationalModel ;
205213 var valueTuples =
206214 contextModelRelationalModel . Tables
@@ -214,6 +222,15 @@ public static void RemoveDbContextRelationModelSaveOnlyThatIsNamedType(this DbCo
214222
215223#if EFCORE5
216224 var contextModelRelationalModel = contextModel . RelationalModel as RelationalModel ;
225+
226+ var entityTypes = contextModel . GetEntityTypes ( ) ;
227+ foreach ( var entityType in entityTypes )
228+ {
229+ if ( entityType . GetFieldValue ( "_data" ) is List < object > _data )
230+ {
231+ _data . Clear ( ) ;
232+ }
233+ }
217234 var valueTuples = contextModelRelationalModel . Tables
218235 . Where ( o => o . Value . EntityTypeMappings . All ( m => m . EntityType . ClrType != shardingType ) )
219236 . Select ( o => o . Key ) . ToList ( ) ;
@@ -225,6 +242,14 @@ public static void RemoveDbContextRelationModelSaveOnlyThatIsNamedType(this DbCo
225242#if EFCORE2 || EFCORE3
226243 var entityTypes =
227244 contextModel . GetFieldValue ( "_entityTypes" ) as SortedDictionary < string , EntityType > ;
245+
246+ foreach ( var entityType in entityTypes )
247+ {
248+ if ( entityType . GetFieldValue ( "_data" ) is List < object > _data )
249+ {
250+ _data . Clear ( ) ;
251+ }
252+ }
228253 var list = entityTypes . Where ( o=> o . Value . ClrType != shardingType ) . Select ( o=> o . Key ) . ToList ( ) ;
229254 for ( int i = 0 ; i < list . Count ; i ++ )
230255 {
0 commit comments