你可以使用c#自动检索mongodb模型中的外部文档吗?
本文关键字:外部 文档 模型 可以使 自动检索 mongodb | 更新日期: 2023-09-27 18:18:45
我想设置我的mongo数据库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来检索个人,而不必执行手动查询…
您可能需要某种拥有MongoDatabase对象的存储库类,&让它将返回的文档插入到类中。保存更改可能会很尴尬,因为您需要将文档取出。如果是这样,那么在对象中使用Mongo类可能是正确的。无论哪种方式,存储库类都会有所帮助。
我将使用绑定到Func,类似于服务中的Func<MongoDatabase, DocumentOwner>
来创建新实例。