Ölü değil, ancak Microsoft artık Entity Framework'e odaklanıyor.
LINQ to SQL'i küçük projelerde kullandım ve hafif bir veri katmanı olarak oldukça güzel ve benzer boyutlu projelerde tekrar kullanmayı düşünürdüm. LINQ uygulamasının kendisi gerçekten iyi ve yakın zamana kadar NHibernate LINQ projesinden çok daha iyi. L2S'yi kullandığım daha büyük projede, L2S 'DataContext' sınıfıyla ilgili sınırlamalar nedeniyle mutlu olduğum bir iş birimi modeli bulmakta zorlandım. L2S ile 'İstek başına oturum' gibi bir şeyi uygulamaya çalışmak çok zor ya da imkansız görünüyor.
Ayrıca L2S'yi gerçek bir ORM olarak düşünmüyorum, çünkü size çok fazla haritalama seçeneği sunmuyor. Sınıf tasarımınızın veritabanı şemanızı (sınıf başına tablo) gerçekten izlemesi gerekir, aksi takdirde yolun her adımında sizinle savaşacaktır. L2S hakkında sevmediğim başka bir şey , koleksiyonları, referansları ve tembel yüklemeyi işlemek için belirli türler ( EntitySet
ve EntityRef
) kullanma gereğidir . Bu, etki alanı model ORM'nizi başka bir soyutlama katmanı eklemeden agnostik tutmanın mümkün olmadığı anlamına gelir.
L2S ile ilgili diğer sorunum, sorgu oluşturmak için LINQ'a olan tek güven. LINQ sağlayıcı çok iyi yazılmış ve genellikle sorguların çoğunluğu için iyi SQL oluşturur ama LINQ ile iyi ifade edilemez daha karmaşık sorgular olduğunu benim endişelerim var. L2S kullanarak temel olarak bu durumlarda saklı yordamları çağırmaya geri dönmelisiniz, oysa (örneğin) NHibernate, oluşturulan SQL üzerinde daha fazla kontrol istediğinizde kullanılabilecek birkaç API'ye (LINQ sağlayıcısı, QueryOver, HQL vb.) Sahiptir.
L2S'nin NHibernate'e karşı savunmasında, onu bir projede çalıştırmak ve çalıştırmak için çok daha az ek yük var.