0

collection.Insert<T>インスタンスの挿入と更新に使用できますがcollection.Save<T>、MongoDb の c# ドライバーが特定のインスタンスを削除する同様の方法を提供しない理由はわかりません。彼らのRemoveメソッドは IMongoQuery 引数を要求しますが、これには のようなプロパティ名をハードコーディングする必要があるようQuery.EQ("Id", BsonValue.Create(id))です。インスタンス全体を指定して削除しRemove<T>たり、RemoveById を使用したり、特定の入力タイプを使用して LINQ のようなクエリを作成したり、プロパティのハードコーディングを取り除くその他の方法を指定したりしたいと思います。これは、MS エンティティで使用されるものです。フレームワーク POCO. そのような方法はありますか?

更新:わかりました、私はそれを行う1つの方法を見つけました:

IMongoQuery mq = new QueryDocument(entity.ToBsonDocument());
customers.Remove(mq);

それが唯一の方法ですか?

ありがとう

4

1 に答える 1

1

あなたが求めていることを行う方法はまだありませんが、それは頻繁に求められる機能です。このJIRAリクエストの機能に投票できます。

https://jira.mongodb.org/browse/CSHARP-457

あなたが見つけたアプローチはうまくいきますが、かなり手間がかかります。ドキュメント全体をクエリとして使用しています。はい、削除しようとしているドキュメントと一致しますが、必要以上に多くのデータがネットワーク上を移動しています。

于 2012-04-30T22:50:19.167 に答える