LiteDb簡單key-value pair存法
LiteDb 是C#上簡單的NoSql資料庫,不過想用一個collection來存不同型別的key-value pair就略顯麻煩。 好在LiteDb本身有提供schema-less的用法,詳細可參閱 Collections - LiteDB :: A .NET embedded NoSQL database 。 再略微調整一下,就可以撰寫一個通用的key-value pair存法。 Base class如下 public class KeyValueRepository { public KeyValueRepository ( ILiteCollection < BsonDocument > collection ) { _collection = collection ; } private ILiteCollection < BsonDocument > _collection ; protected void SetValue ( string key , object ? value ) { _collection . Upsert ( new BsonDocument { [ "_id" ] = key , [ "Value" ] = BsonMapper . Global . Serialize ( value ) } ) ; } protected T ? GetValue < T > ( string key ) { return BsonMapper . Global . Deserialize < T > ( _collection . FindById ( key ) ? [ "Value" ] ) ; } } 繼承後,要宣告不同的type就比較方便了。 public class MyRepository : KeyValueRepository { public MyRepository...