私はタイプUser
のPOCOをいくつか持っていますが、今後そのプロパティが変更される懸念があります。私はUsers
とデータを格納するmongodbを持っています。一意性の制約はありません。不幸にもそれを作成することはできません。私のアプリはサードパーティのアーカイブソースから古いユーザをインポートしています。これらのユーザをmongoに書きたいのですが、重複したくないので、mongoのデータ実際のものです。基本的には、a.Username == b.Username && a.Email == b.Email
などのフィルタを照合してユーザーの重複を定義することはできますが、この質問には関係したくありません。ユーザーAとBが同じかどうかを判断できる方法があるとしましょう。MongoDB C#ドライバ:存在しない場合は文書を作成
ここで私の唯一のオプションは、SetOnInsertでupsert Updateを使用しているようです。 C#ドライバにはメソッドBuilders<User>.Update.SetOnInsert<TField>(Expression<User,TField>, TField)
がありますが、それを複数回呼び出すとすべてのプロパティが列挙されます。これらのプロパティが将来変更される場合、誰かがこのメソッドを更新する必要があり、私はそれを気に入らない。
この問題を回避する方法はありますか?たぶんreflecionとPropertyInfo
を使用するか、またはBsonDocument
と直接作業していますか?それとももっと簡単な方法がありますか?前もって感謝します。