これは、Mongo (および一般的な NoSQL) を使用する最初の数日であるため、頭の中でしかできないことを試している可能性があります。
設定:
データベース: MongoDB 2.2.1
インターフェース: nuget の最新の 10gen c# ドライバー
私はこのような一般的なクラスを持っています
public class User { public string userName {get;set;} }
そして、このようなアプリケーション固有の実装
public class App1User : User { public int appSpecificProperty { get;set; } }
問題:
私のアプリケーションでは、タイプ User として保存されたレコードを User または App1User としてロードできます。残念ながら、App1User タイプを使用してレコードを保存すると、それをユーザーとしてロードできなくなります (FileFormatException: Element 'appSpecificProperty' は、クラス User のフィールドまたはプロパティと一致しません)。
次のようなアイテムをロードします。
var collection = mongDB.GetCollection<User>("users");
var query = new QueryDocument("username" : userName);
var user = collection.Find(query).SingleOrDefault(); // error here if record was type App1User
複数のプロジェクトでユーザー認証ライブラリを使用し、ユーザー オブジェクトを拡張してアプリケーション固有の設定を追加したいので、これは問題です。