我是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);
}
}
如何使用“添加”类向嵌套数组添加注释?
答案 0 :(得分:0)
使用此存储库模式,将有四个步骤:
这样的事情:
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
请注意,由于添加存储库方法使用C#驱动程序保存方法,因此它实际上具有insert or update的功能。在这种情况下,您将没有 CommentModel 的存储库,因为它充当嵌入在 BlogModel 文档中的文档数组。