1

我想设置我的 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 来检索个人而无需执行手动查询,那就更好了......

4

1 回答 1

0

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

我会使用与 Func 的绑定,类似于Func<MongoDatabase, DocumentOwner>在服务中创建新实例。

于 2013-06-18T21:14:39.343 回答