Saya bekerja untuk pelanggan yang memiliki proyek besar yang menggunakan Linq-to-SQL. Ketika proyek dimulai itu adalah pilihan yang jelas, karena Kerangka Entitas kekurangan beberapa fitur utama pada waktu itu dan kinerja Linq-to-SQL jauh lebih baik.
Sekarang EF telah berkembang dan Linq-to-SQL tidak memiliki dukungan async, yang sangat bagus untuk layanan yang sangat skalabel. Kami terkadang memiliki 100+ permintaan per detik dan meskipun kami telah mengoptimalkan basis data kami, sebagian besar kueri masih membutuhkan beberapa milidetik untuk diselesaikan. Karena panggilan basis data yang sinkron, utas diblokir dan tidak tersedia untuk permintaan lainnya.
Kami berpikir untuk beralih ke Entity Framework, semata-mata untuk fitur ini. Sayang sekali Microsoft tidak menerapkan dukungan async ke Linq-to-SQL (atau sumber terbuka, sehingga komunitas bisa melakukannya).
Tambahan Desember 2018: Microsoft bergerak ke arah .NET Core dan Linq-2-SQL tidak mendukung .NET Core, jadi Anda harus pindah ke EF untuk memastikan Anda dapat bermigrasi ke EF.Core di masa mendatang.
Ada juga beberapa opsi lain untuk dipertimbangkan, seperti LLBLGen . Ini adalah solusi ORM matang yang sudah ada sejak lama dan telah terbukti lebih tahan di masa depan daripada solusi data MS (ODBC, ADO, ADO.NET, Linq-2-SQL, EF, EF.core).