这是我使用 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:元素'appSpecificProperty'不匹配用户类的任何字段或属性)。
我加载这样的项目:
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
这是一个问题,因为我想在多个项目中使用用户身份验证库,然后只需扩展用户对象以添加应用程序特定的设置。