現在、ID モデルはハードコーディングされており、モデルはそれらから継承されていますが、このように ID プロパティを指定する必要なく、汎用モデルだけを記述できるようにしたいと考えています (同じモデルに対して別のモデル定義が必要になるため、場合によっては、収納タイプ)
PersonModel : CouchAdapterModel, IJsonModel {
string Name { get; set; }
}
CouchAdapterModel : IJsonModel {
string _id { get; set; }
string _rev { get; set; }
}
したがって、PersonModel はこれら 2 つの継承されたプロパティを取得し、ソファの必要に応じてシリアル化された Json になります。
しかし、これには継承を使用したくないとしましょう。むしろ、選択したドキュメント ストアに基づいて、実行時に ID プロパティを暗示または追加する必要があります。
その後、モデルを一般的に定義できますが、それを保存したり、CouchDB 以外のものから読み取ったりする場合は、それに応じて ID プロパティを取得します。
ただし、これを行うための非常にクリーンな方法は考えられません... 1つの考えは、ある種の IJsonIdentity プロパティが必要であり、実行時に次のように注入されることでした
CouchDBIdentity : IJsonIdentity {
string _id { get; set; }
string _rev { get; set; }
}
また
MongoDBIdentity : IJsonIdentity {
string whatever { get; set; }
}
そして、実行時にモデルプロバイダーがモデルを作成すると、依存関係の注入または何かがモデルにアイデンティティプロパティを設定します...
問題は、モデルのルート レベルでプロパティを取得できなくなり、代わりにそのモデルの Identity プロパティの下にあるため、バックエンドの標準 JSON が一致せず、人々はそれをそのまま使用できないことです。予想通り...
どんなアイデアでも大歓迎です