Itu tidak mati, tetapi Microsoft sekarang fokus pada Entity Framework.
Saya telah menggunakan LINQ untuk SQL pada proyek-proyek kecil, dan itu cukup bagus sebagai lapisan data ringan dan saya akan mempertimbangkan menggunakannya lagi pada proyek berukuran serupa. Implementasi LINQ sendiri sangat bagus dan hingga saat ini jauh lebih baik daripada proyek NHibernate LINQ. Pada proyek yang lebih besar saya menggunakan L2S aktif, saya merasa sulit untuk datang dengan pola unit-of-work yang saya senangi, karena keterbatasan dengan kelas 'DataContext' L2S. Mencoba menerapkan sesuatu seperti 'Sesi per permintaan' dengan L2S tampaknya sangat sulit atau tidak mungkin.
Saya juga tidak akan benar-benar menganggap L2S sebagai ORM sejati, karena benar-benar tidak memberi Anda banyak opsi pemetaan. Desain kelas Anda benar-benar harus mengikuti skema database Anda (tabel-per-kelas) jika tidak, ia akan bertarung dengan Anda setiap langkah. Hal lain yang saya tidak suka tentang L2S adalah kebutuhan untuk menggunakan tipe spesifik ( EntitySet
dan EntityRef
) untuk menangani koleksi, referensi dan pemuatan yang malas. Ini berarti tidak mungkin mempertahankan model domain Anda ORM agnostik tanpa menambahkan lapisan abstraksi lainnya.
Masalah saya yang lain dengan L2S adalah ketergantungan tunggal pada LINQ untuk menghasilkan pertanyaan. Penyedia LINQ ditulis dengan sangat baik dan umumnya membuat SQL yang layak untuk sebagian besar pertanyaan, tetapi saya khawatir bahwa ada pertanyaan yang lebih kompleks yang tidak dapat diekspresikan dengan baik dengan LINQ. Menggunakan L2S pada dasarnya Anda harus kembali ke memanggil prosedur tersimpan dalam kasus ini, sedangkan (misalnya) NHibernate memiliki beberapa API (penyedia LINQ, QueryOver, HQL dll) yang dapat digunakan ketika Anda ingin lebih mengontrol SQL yang dihasilkan.
Dalam pembelaan L2S atas NHibernate, ada jauh lebih sedikit overhead dalam membangun dan menjalankan proyek.