-2
私は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);
}
}
?このリポジトリパターンを使用して
ありがとうdbaseman。 更新クラスをリポジトリに追加する方が良いと思いますか? '公共無効でaddComment(ObjectIdがpostId、コメントのコメント) { _posts.Collection.Update(Query.EQ( "_ ID"、同上)、 Update.PushWrapped( "コメント" ...私のような何かをすることができます、コメント)); } ' – Aymur
@ user1392537はい、私はそれが理にかなっていると思います。私はあなたがジェネリックリポジトリパターンを "壊す"ことなくそれをどうやって行うのかは分かりません。私はちょうどサブクラスのリポジトリか、拡張メソッドを使用すると思いますか? –
McGarnagle