3

重複の可能性:
LINQ-to-SQL vs ストアド プロシージャ?
ストアド プロシージャ上の Linq

ストアド プロシージャよりも LINQ を使用する利点は何ですか?

4

2 に答える 2

8

たくさんあります:

  1. デバッグ- ストアド プロシージャをデバッグするのは非常に困難ですが、LINQ は .NET の一部であるため、ビジュアル スタジオのデバッガーを使用してクエリをデバッグできます。

  2. 展開- ストアド プロシージャでは、ストアド プロシージャ用の追加のスクリプトを提供する必要がありますが、LINQ ではすべてが 1 つの DLL にコンパイルされるため、展開が簡単になります。

  3. タイプセーフ - LINQ はタイプ セーフであるため、クエリ エラーはコンパイル時にタイプ チェックされます。実行時例外ではなく、コンパイル時にエラーが発生するのは本当に良いことです!

  4. ビルトイン セキュリティ- 私が LINQ より前にストアド プロシージャを好んだ理由の 1 つは、ストアド プロシージャがパラメーターの使用を強制し、SQL インジェクション攻撃を減らすのに役立ったためです。LINQ to SQL は既に入力をパラメーター化しており、これも同様に安全です。

  5. 作業の削減- LINQ を導入する前は、DAL の構築に多くの時間を費やしていましたが、今では DataContext が DAL になっています。私も OPF を使用してきましたが、今では複数のプロバイダーが同梱されている LINQ と他の多くのサード パーティ プロバイダーが付属しており、以前のポイントからの利点が得られます。

注:単純な INSERT、UPDATE、および DELETE ステートメントだけを実行している場合は、(私の意見では) LINQ が最適であり、すべての最適化が自動的に行われます。より複雑な作業については、ストアド プロシージャを使用することをお勧めします。

詳細については、これを参照してください:ストアド プロシージャに対する LINQ の利点は何ですか?

于 2013-01-10T04:33:18.700 に答える
0

グーグルすると、あなたの質問に似たSOの質問がいくつか見つかります。

このlinq-to-sql-vs-stored-procedureslinq-over-stored-proceduresを見ることができます

于 2013-01-10T04:36:38.687 に答える