Я новичок как в C#, так и в MongoDB, и у меня есть некоторые проблемы с вставкой/обновлением/сбережениями элементов в вложенный массив, используя шаблон хранилища онлайн (http://www.primaryobjects.com/cms/article137.aspx). Вот код:MongoDB сохранение комментариев к вложенному массиву
Модели:
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);
}
}
Как добавить комментарий к вложенному массиву, используя класс 'Add'?
Спасибо dbaseman. Как вы думаете, было бы лучше добавить класс обновления в мой репозиторий? Позволяя мне делать что-то вроде ... 'общественная пустота AddComment (ObjectId сообщения дан, комментарий комментарий) { _posts.Collection.Update (Query.EQ ("_ идентификатор", Id), Update.PushWrapped ("Комментарии" , комментарий)); } ' – Aymur
@ user1392537 Да, я полагаю, это имеет смысл. Я не уверен, как вы это делаете, не разбирая шаблон общего репозитория. Я думаю, что только подкласс класса Replaceitory или использовать методы расширения? –
McGarnagle