-2

我是 C# 和 MongoDB 的新手,并且在使用在线存储库模式 ( http://www.primaryobjects.com/cms/article137.aspx )将/更新/保存项目插入嵌套数组时遇到了一些问题。这是一些代码:

楷模:

public class BlogModel
{
    [BsonId]
    public ObjectId Id { get; set; }
    public DateTime Date { get; set; }
    [Required]
    public string Title { get; set; }
    [Required]
    public string Body { get; set; }
    public string Author { get; set; }
    public IList<CommentModel> Comments { get; set; }
}

public class CommentModel
{
    [BsonId]
    public ObjectId Id { get; set; }
    public DateTime Date { get; set; }
    public string Author { get; set; }
    [Required]
    public string Body { get; set; }
}

和存储库模式:

public void Add<T>(T item) where T : class, new()
{
    _db.GetCollection<T>().Save(item);
}

public void Add<T>(IEnumerable<T> items) where T : class, new()
{
    foreach (T item in items)
    {
        Add(item);
    }
}

如何使用“添加”类向嵌套数组添加注释?

4

1 回答 1

0

使用此存储库模式,将有四个步骤:

  1. 实例化BlogModel类型的存储库
  2. 检索要添加评论的文档
  3. 向文档添加评论
  4. 将文档保存回集合中。

像这样的东西:

var myRepository = new Repository<BlogModel>();
var myDocument = myRepository.Find(some_id);    // retrieve BlogModel document to update
myDocument.Comments.Add(some_new_comments);    // add to IList
myRepository.Add(myDocument);     // save changes to the document back to the repository

请注意,由于您的Add repository 方法使用 C# Driver Save方法,因此它确实具有insert 或 update的功能。在这种情况下,您将没有CommentModel的存储库,因为它用作嵌入到BlogModel文档中的文档数组。

于 2012-05-13T20:56:11.157 回答