2

ソートされたアイテムのリストを取得する必要があります。ソート順は、アイテムの GUID の任意のリストに関連付けられます。つまり、1, 2, 3, 4だけでなく、3, 7, 2, 4 の場合もあります。

LINQ-to-SQL もストアド プロシージャも使用していません。

SQL Server が提供する順序でリストを取得し、C# コードで LINQ を使用して並べ替えることを提案しました。

これに代わる方法は、このような文字列を作成することです (このヒントに従ってください)。

select * from publishers
Order by (CASE City
 WHEN 'Paris'    THEN 1
 WHEN 'Chicago'  THEN 2
 WHEN 'Boston'   THEN 3
 WHEN 'New York' THEN 4
 ELSE 100 END) ASC, City DESC

このアプローチには一定の優れた点があることは認めざるを得ませんが、私は C# でデータ操作を行う方が好きです。他のアプローチに対する適切な反撃を思いつくことはできないので、それが機能していることを認めなければなりません。

ここでの欠点は何ですか?(もちろん、明らかな注射を除いて、それは私たちにとって問題ではありません。幸いなことに、セキュリティの問題について心配する必要はありません。)

4

1 に答える 1

4

私は個人的にデータベース中心のソリューションを選びます。データをソートまたはページングする必要がある場合、ほとんどの場合、DB サーバー側で実行しようとします (通常はSQLand/orを使用しますStoredProcedures)。

利点は明らかです。

  1. サーバーは通常、アプリ システムで最も強力なマシンです。また、私たちのために大変な作業を行うように調整されているためです。

  2. サーバー上で準備された 1 回限りのデータは、そのサイズも縮小されていることを意味する場合があり (具体的なページをフィルター処理または取得)、クライアントに送信されるデータ量が大幅に削減され、応答時間が短縮されるという利点があります。

あなたが言ったように、一度にすべてをフェッチしている場合、少なくとも、最初のポイントは考慮できるもののままです。

于 2013-02-11T08:47:41.203 に答える