Kami saat ini berada dalam situasi di mana kami memiliki pilihan antara menggunakan map-relational objek-out-of-the-box atau menggulung kita sendiri
Kami memiliki aplikasi lawas (ASP.NET + SQL Server) di mana lapisan data & lapisan bisnis sayangnya dihaluskan bersama. Sistem ini tidak terlalu rumit dalam hal akses data. Itu membaca data dari grup besar (35-40) dari tabel yang saling terkait, memanipulasinya dalam memori & menyimpannya kembali ke beberapa tabel lain dalam format ringkasan. Kami sekarang memiliki kesempatan untuk melakukan beberapa refactoring dan sedang mencari kandidat teknologi untuk digunakan secara terpisah & menyusun dengan benar Akses Data kami.
Apapun teknologi yang kami putuskan, kami ingin:
- memiliki objek POCO dalam Model Domain kami yang Ketidaktahuan
- memiliki lapisan abstraksi untuk memungkinkan kita menguji unit objek model domain kita terhadap sumber data yang didasari mocked up
Jelas ada banyak hal di luar sana tentang hal ini dalam hal Pola & Kerangka Kerja dll.
Secara pribadi saya mendorong untuk menggunakan EF bersama dengan ADO.NET Unit Testable Repository Generator / POCO Entity Generator . Ini memenuhi semua persyaratan kami, dapat dengan mudah dimasukkan ke dalam Pola Repo / UnitOfWork dan Struktur DB kami cukup matang (telah mengalami refactor) sehingga kami tidak akan membuat perubahan harian pada model.
Namun yang lain di grup menyarankan untuk membuat / memutar DAL kita sendiri sepenuhnya dari awal. (Custom DataMappers, DataContexts, Repository, Antarmuka di mana-mana, Ketuntasan Injeksi Ketergantungan untuk membuat objek konkret, Terjemahan LINQ-ke-Underlying Query Translation, Implementasi Caching Kustom, Implementasi Custom FetchPlan ...) daftar berjalan dan terus terang mogok saya sebagai orang gila.
Beberapa argumen yang dilontarkan adalah "Yah setidaknya kita akan mengendalikan kode kita sendiri" atau "Oh saya sudah menggunakan L2S / EF dalam proyek sebelumnya dan itu tidak lain adalah sakit kepala". (Meskipun saya telah menggunakan keduanya dalam Produksi sebelum dan menemukan masalah sedikit dan jauh di antara, dan sangat mudah dikelola)
Jadi, apakah ada arsitek / arsitek berpengalaman Anda di luar sana yang memiliki kata-kata bijak yang dapat membantu saya menjauhkan produk ini dari apa yang bagi saya sepertinya akan menjadi bencana total. Saya tidak dapat membantu tetapi berpikir bahwa manfaat apa pun yang diperoleh dengan menghindari masalah EF, akan hilang dengan cepat dengan mencoba menemukan kembali kemudi.