我想设置我的mongo db poco模型,以便它们自动检索它们的外来文档,类似于EF和nhibernate处理它的方式。
这是我到目前为止提出的解决方案,它有点笨重,但我能管理的最好:
基本型号:
public class DocumentOwner
{
public virtual ObjectId OwnerID { get; set; }
}
手动检索外国文件的扩展模型:
public class DocumentOwner
{
public MongoDatabase DB { get; set; }
public virtual ObjectId OwnerID { get; set; }
public virtual Individual Owner
{
get
{
return this.DB.GetCollection<Individual>().FindOne(Query<Individual>.EQ(x => x.Id, this.OwnerID));
}
}
这个解决方案的主要问题是我必须手动注入非常笨重的mongo数据库实例,如果有办法使用ninject注入这个实例会更加整洁。如果不知何故我可以使用MongoDBRef来检索个人而不必执行手动查询...
答案 0 :(得分:0)
你可能想要某种拥有MongoDatabase对象的存储库类,&amp;让它将返回的文档插入到您的类中。保存更改可能很尴尬,因为您需要将文档退出。如果是这样,那么可能在对象中使用Mongo类是正确的。无论哪种方式,存储库类都会有所帮助。
我会在服务中使用绑定到Func,例如Func<MongoDatabase, DocumentOwner>
来创建新实例。