@@ -52,17 +52,18 @@ public MnemonicDBStorageBackend(IServiceProvider serviceProvider)
5252 }
5353 }
5454
55- private static string GetId < T > ( ) where T : ISettings
55+ private static string GetId < T > ( string ? key ) where T : ISettings
5656 {
57- return typeof ( T ) . FullName ?? typeof ( T ) . Name ;
57+ var typeName = typeof ( T ) . FullName ?? typeof ( T ) . Name ;
58+ return string . IsNullOrWhiteSpace ( key ) ? typeName : $ "{ typeName } |{ key } ";
5859 }
5960
60- public async ValueTask Save < T > ( T value , CancellationToken cancellationToken ) where T : class , ISettings , new ( )
61+ public async ValueTask Save < T > ( T value , string ? key , CancellationToken cancellationToken ) where T : class , ISettings , new ( )
6162 {
6263 var db = _conn . Value . Db ;
6364 using var tx = _conn . Value . BeginTransaction ( ) ;
6465
65- var name = GetId < T > ( ) ;
66+ var name = GetId < T > ( key ) ;
6667
6768 EntityId id ;
6869 var settings = Setting . FindByName ( db , name ) . ToArray ( ) ;
@@ -80,9 +81,9 @@ private static string GetId<T>() where T : ISettings
8081 await tx . Commit ( ) ;
8182 }
8283
83- public ValueTask < T ? > Load < T > ( CancellationToken cancellationToken ) where T : class , ISettings , new ( )
84+ public ValueTask < T ? > Load < T > ( string ? key , CancellationToken cancellationToken ) where T : class , ISettings , new ( )
8485 {
85- var settings = Setting . FindByName ( _conn . Value . Db , GetId < T > ( ) ) . ToArray ( ) ;
86+ var settings = Setting . FindByName ( _conn . Value . Db , GetId < T > ( key ) ) . ToArray ( ) ;
8687 if ( settings . Length == 0 ) return ValueTask . FromResult < T ? > ( null ) ;
8788 return ValueTask . FromResult ( Deserialize < T > ( settings . First ( ) . Value ) ) ;
8889 }
0 commit comments