你能用c#自动检索mongodb模型中的外文吗?

时间:2013-06-15 18:15:05

标签: c# .net asp.net-mvc mongodb ninject

我想设置我的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来检索个人而不必执行手动查询...

1 个答案:

答案 0 :(得分:0)

你可能想要某种拥有MongoDatabase对象的存储库类,&amp;让它将返回的文档插入到您的类中。保存更改可能很尴尬,因为您需要将文档退出。如果是这样,那么可能在对象中使用Mongo类是正确的。无论哪种方式,存储库类都会有所帮助。

我会在服务中使用绑定到Func,例如Func<MongoDatabase, DocumentOwner>来创建新实例。