Saya pikir argumen pro LINQ tampaknya berasal dari orang-orang yang tidak memiliki sejarah dengan pengembangan basis data (secara umum).
Terutama jika menggunakan produk seperti VS DB Pro atau Team Suite, banyak argumen yang dibuat di sini tidak berlaku, misalnya:
Sulit untuk mempertahankan dan Menguji: VS menyediakan pemeriksaan sintaksis lengkap, pengecekan gaya, pengecekan referensial dan kendala dan banyak lagi. Ini juga menyediakan kemampuan pengujian unit lengkap dan alat refactoring.
LINQ membuat pengujian unit yang benar tidak mungkin karena (dalam pikiran saya) gagal tes ACID.
Debugging lebih mudah di LINQ: Mengapa? VS memungkinkan step-in penuh dari kode terkelola dan debugging SP secara teratur.
Dikompilasi menjadi satu DLL daripada skrip penerapan: Sekali lagi, VS datang untuk menyelamatkan di mana ia dapat membangun dan menggunakan basis data lengkap atau membuat perubahan tambahan yang aman data.
Tidak harus belajar TSQL dengan LINQ: Tidak, tetapi Anda harus belajar LINQ - di mana manfaatnya?
Saya benar-benar tidak melihat ini sebagai manfaat. Mampu mengubah sesuatu dalam isolasi mungkin terdengar bagus secara teori, tetapi hanya karena perubahan memenuhi kontrak tidak berarti itu mengembalikan hasil yang benar. Untuk dapat menentukan hasil yang benar, Anda memerlukan konteks dan Anda mendapatkan konteks itu dari kode panggilan.
Um, aplikasi yang digabungkan secara longgar adalah tujuan akhir dari semua programmer yang baik karena mereka benar-benar meningkatkan fleksibilitas. Mampu mengubah hal-hal dalam isolasi itu fantastis, dan tes unit Anda yang akan memastikan itu masih memberikan hasil yang sesuai.
Sebelum kalian semua kesal, saya pikir LINQ memiliki tempatnya dan memiliki masa depan yang cerah. Tetapi untuk aplikasi yang kompleks dan intensif data, saya pikir tidak siap untuk menggantikan prosedur yang tersimpan. Ini adalah pandangan yang saya gaungkan oleh seorang MVP di TechEd tahun ini (mereka akan tetap tanpa nama).
EDIT: Sisi LINQ to SQL Stored Procedure adalah sesuatu yang masih perlu saya baca lebih lanjut - tergantung pada apa yang saya temukan saya dapat mengubah cacian saya di atas;)