1

アプリケーションのパフォーマンスの問題のため、私のプロジェクトの 1 つでメモリ内アプローチを使用しています。このアプローチでは、すべてのテーブルをジェネリック コレクションの形式で RAM にロードしています (nhibernate を使用)。

問題は、単純な linq to sql アプローチを使用していたときに、テスト チームと QA チームが、表示しているページの sql プロファイルを使用して sql クエリを簡単に取得できたことです。

しかし、新しいアプローチ (メモリ内) では、コレクション内のすべてのデータを一度に読み込んでから、linq を使用してそのコレクションからデータを取得しているため、テスト チームと QA チームはビジネスを検証するための SQL クエリを取得できません。ロジックとバグの検証。

この状況で役立つ解決策を提案してください。linq からオブジェクトに sql を取得することは不可能だと思います (すべてのデータが既にコレクションに含まれているため)。コレクションまたはその他の適切なソリューションに対して実行されているlinqのSQLを生成するために、私を助けることができるソリューション/アプローチ/ツールを提案してください。

注: 私は linq から sql への sql の取得が不可能であることを知っています。QA およびテスト チームがクエリ/ビジネス ロジックを検証するのに役立つ提案を探しています (以前は sql をキャプチャして行っていたように)。可能であれば、実行/分析にさらに使用できる文字列としてlinqクエリをログに記録します。

4

1 に答える 1

2

この状況で実行する唯一の SQL ステートメントは、データをメモリにロードするための最初の SELECT クエリです。これらを実行すると、「クエリ」を実行しなくなり、代わりに .NET Framework 呼び出しを実行することになります。

アプリケーションのアーキテクチャを根本的に変更したことを考えると、これをテスト チームと QA チームに伝える必要があります。彼らは、以前のようにアプリケーションが内部で何をしているのかを「見る」ことができなくなります。この種の「詳細な調査」機能がテスト チームの要件である場合、アーキテクチャをさらに変更する必要がある可能性があります。

于 2012-12-26T18:43:02.447 に答える