私はまだ正確な答えを見つけていないので、
次のように構成された 3 列のディクショナリ テーブルを想像してください。
整数 | 文字列 1 | string2 (int+string1 は pk)
テーブルには 20,000 行を超える行があり、値pk
を返すために非常に広範囲にクエリされますstring2
ここで最善のアプローチは何でしょうか?
1.直接 LINQ DB リクエスト
長所:確かに非常に高速なPKによるクエリ
短所:データベースサーバーへの1秒あたり数百回の呼び出し
2. DataTable オブジェクトにデータを 1 回プリロードする
プロ:すべてのデータはローカルの .net メモリにあります (毎回データベースに移動する必要はありません)
短所: LINQを使用するには、LINQクエリのように列挙可能なオブジェクトを返す呼び出しが必要AsEnumerable()
です。オブジェクトに対する LINQ クエリは、DB を呼び出すよりも効率的ですか? ここでPK制約が使用されていますか?DataTable
DataSource
3.Dictionary<string, string>
すべてのテーブルをキーint.ToString()+string1
と値の場所にプリロードしますstring2
pro: PK 制約が常に使用され、辞書は正しい値で直接応答します
短所: 1または2よりも優れていますか?
4.あなたのより良いアイデア
私の大きな好奇心は答えを待っています...