C# Stored Procedures vs Linq

Dalam dot net programming, banyak cara bagi developer untuk melakukan hubungan dengan database dan mengaksesnya. Secara umum ada 2 cara yang umum digunakan yaitu menggunakan DataSet+SqlDataAdapter atau Linq.

Secara garis besar, kita dapat menggambarkan keuntungan Linq dibanding data adapter:
  • object oriented, sehingga tipe data yang diakses sudah terkonversi menjadi data type dot net. Hal ini membuat penggunaan tipe data yang lebih aman
  • Linq memiliki query optimizer sendiri sehingga query dasar yang digunakan developer sudah diimprove secara otomatis
  • relasi table dapat dilakukan secara obect-oriented sehingga lebih mudah digunakan saat development
Namun di samping itu Linq memiliki kelemahan yang cukup signifikan. Berikut adalah keunggulan stored procedure dibanding dengan Linq:
  • struktur objek Linq sangat bergantung pada struktur database, sehingga perubahan sekecil apapun akan memerlukan penangan dari sisi applikasi atau applikasi berpotensi break. Sementara mengubah stored procedures tidak memerlukan perubahaan dari sisi applikasi.
  • sulit untuk menelusuri query-query yang digunakan (terutama yang kompleks). Tujuan dari penelusuran tersebut seperti saat debugging atau indexing
  • stored procedures dapat digunakan untuk query yang simple hingga yang query kompleks seperti summarize atau pagination