アプリケーションを最新の安定したMongoDBC#Driver2.0にアップグレードしました。
移行中に、基本的な機能が壊れ、次のような最も単純なクエリでもthis.collection.Find(e => e.Id == id).SingleOrDefaultAsync()
正しいデータが返されません。
クラスのマッピングと規則を確認しましたが、問題を適切に特定するために出力クエリを確認したいと思います。
それで、それはMongoClient
側でどのように行われるべきですか?
データベースレベルでプロファイリングを設定することは可能ですが、データベースを使用するアプリケーションや開発者が複数いるため、適切なソリューションではありません。
私のアプリケーションは現在使用しているNinject.Extensions.Logging
とlog4net
UI、ビジネスおよびEFデータアクセスインチ
新しいC#MongoDBドライバーの場合、APIが変更されました。MongoClientSettings
接続文字列の代わりに、オブジェクトを受け入れるより複雑なコンストラクターを使用する必要があります。
次のコードを使用して接続文字列を引き続き使用しますが、各コマンドのログを有効にします。
var mongoConnectionUrl = new MongoUrl(connectionString);
var mongoClientSettings = MongoClientSettings.FromUrl(mongoConnectionUrl);
mongoClientSettings.ClusterConfigurator = cb => {
cb.Subscribe<CommandStartedEvent>(e => {
logger.Log($"{e.CommandName} - {e.Command.ToJson()}");
});
};
var mongoCfgClient = new MongoClient(mongoClientSettings);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加