Pro LINQ の議論は、(一般的に) データベース開発の歴史を持たない人々から来ているようだと思います。
特に VS DB Pro や Team Suite などの製品を使用している場合、ここでの議論の多くは当てはまりません。たとえば、次のとおりです。
保守とテストが困難: VS は、完全な構文チェック、スタイル チェック、参照および制約チェックなどを提供します。また、完全な単体テスト機能とリファクタリング ツールも提供します。
LINQ は (私の考えでは) ACID テストに失敗するため、真の単体テストを不可能にします。
LINQ ではデバッグが簡単です: なぜですか? VS では、マネージ コードからの完全なステップ インと、SP の定期的なデバッグが可能です。
デプロイ スクリプトではなく単一の DLL にコンパイル: ここでも、VS が助けになり、完全なデータベースを構築してデプロイしたり、データを安全に増分変更したりできます。
LINQ で TSQL を学ぶ必要はありません: いいえ、必要ありませんが、LINQ を学ぶ必要があります。メリットはどこにありますか?
これは本当にメリットとしか思えません。何かを単独で変更できるということは、理論的には良いことのように思えるかもしれませんが、変更がコントラクトを満たしているからといって、正しい結果が返されるとは限りません。正しい結果が何であるかを判断できるようにするには、コンテキストが必要であり、呼び出し元のコードからそのコンテキストを取得します。
ええと、緩く結合されたアプリは、実際に柔軟性を向上させるため、すべての優れたプログラマーの最終的な目標です。個別に変更できることは素晴らしいことであり、適切な結果が返されることを保証するのは単体テストです。
皆さんが動揺する前に、LINQ には適切な場所があり、壮大な未来があると思います。しかし、複雑でデータ集約型のアプリケーションの場合、ストアド プロシージャに取って代わる準備が整っているとは思えません。これは、今年の TechEd の MVP に私が同意した見解でした (彼らは無名のままです)。
編集: LINQ to SQL ストアド プロシージャの側面については、まだ詳細を読む必要があります。