2012-02-24 7 views
3

FluentMongoを使用してドキュメントを削除したり更新したりするためのきれいな方法があるのでしょうか?FluentMongoを使用してドキュメントを削除および更新する

FluentMongoを使用してリポジトリレイヤを作成しています。ただし、文書の削除や更新ができないことは厄介なことです。おそらく、私は適切なリポジトリパターンを維持しながらこれを処理する方法を見逃したでしょうか?

public interface IRepository : IDisposable 
{ 
    IQueryable<T> All<T>() where T : class, new(); 

    void Delete<T>(Expression<Func<T, bool>> expression) 
     where T : class, new(); 

    void Update<TEntity>(TEntity entity) where TEntity : class, new(); 
} 

ありがとうございました。

答えて

0

最も簡単な方法は、標準のMongoCollectionをリポジトリメソッドの後ろにラップすることです。あなたのリポジトリがタイプされているので、タイプされたコレクションを作成し、そのコレクションからドキュメントを削除することができます。ここにサンプル実装があります。 FluentMongoを使用して2013年7月27日に

balexandreによって追加
MongoCollection<T> collection = mongoserver.GetCollection<T>(); 

public void Delete(string id) 
{ 
     this.collection.Remove(Query.EQ("_id", id)); 
} 

public void Delete(T entity) 
{ 
    this.Delete(entity.Id); 
} 

、そこ例えば、高度なクエリのために有用であるMongoCollection<T>を取得するプロパティ、我々はすべて私たちを削除する場合コレクションに含まれるドキュメントは、次のようになります。

public void DeleteAll() { 
    var collection = myRepository.Collection; 
    collection.RemoveAll(); 
} 

あなたはすべての文書が実際にOk財産

public bool DeleteAll() { 
    var collection = myRepository.Collection; 
    return collection.RemoveAll().Ok; 
} 
+2

を使用削除された確認を返すようにしたい場合はどのようにLINQの式を削除するためには?それが本当の問題です。クエリを作成します。 – rboarman

関連する問題