Ya, tetapi dengan beberapa peringatan:
Ini sepenuhnya didukung oleh Microsoft, dan memiliki komunitas yang berkembang - tetapi menjadi lebih baru dari pesaing terdekatnya, nHibernate, masih belum memiliki komunitas yang cukup matang.
Seiring dengan memiliki komunitas yang kurang matang, akan ada waktu di mana fitur tersedia dengan EF4 tetapi hampir tidak didokumentasikan; atau EF4 akan memberikan pengecualian yang Google tidak dapat membantu Anda.
Ini fitur lengkap ketika digunakan sebagai Microsoft bermaksud, tetapi dalam pengalaman saya itu bisa sangat sulit untuk retrofit ke sistem yang ada. Idealnya Anda akan menggunakannya dalam skenario greenfield dengan tumpukan Microsoft 100%. Ini tentu saja cukup fleksibel untuk berbaur dengan sistem lain, tetapi hal itu meningkatkan kesulitan secara substansial.
Namun, untuk menegaskan kembali poin utama, itu lengkap dan cukup stabil untuk penggunaan produksi.
Satu hal kunci untuk ditunjukkan, yang tampak jelas tetapi sering diabaikan sampai menyebabkan rasa sakit, adalah bahwa ORM berfungsi untuk memetakan dari paradigma relasional ke paradigma OO. Jika salah satu dari tingkatan ini tidak mengikuti aturan paradigma masing-masing maka Anda akan merasa sangat terluka.
Ini bisa dua arah - jika Anda fasih dalam paradigma relasional / set-based dari SQL dan OOP maka ORM akan membiarkan keduanya berbaur seperti mentega. Jika basis data Anda sepertinya ingin menjadi OO, dan kode-OO Anda sepertinya ingin menjadi berbasis catatan, maka YMMV.
Kami telah menggunakan EF di beberapa aplikasi produksi. Kami juga memiliki NHibernate di beberapa aplikasi produksi. Komentar oleh STW bahwa EF bekerja paling baik "saat digunakan sesuai keinginan Microsoft" tentu benar. NHibernate juga berfungsi dengan baik bila digunakan mengikuti pola yang dimaksudkan oleh tim NHibernate. Saya tidak memiliki pengetahuan atau pengalaman dengan XPO.
Saya tidak menyesal menempatkan NHibernate ke dalam produksi.
Saya tidak menyesal memasukkan Entity Framework ke dalam produksi.
Salah satu faktor pendorong untuk menggunakan EF adalah integrasi dengan LINQ. Saya tahu bahwa NHibernate telah melakukan banyak pekerjaan dengan LINQ juga tetapi belum memiliki waktu untuk menyelidiki itu.
sumber
Kami menggunakan EF4.1 dengan pendekatan Code First untuk proyek web kami dan seperti yang dinyatakan sebelumnya menjaga penggunaan sebagaimana yang dimaksudkan Microsoft akan membuat Anda keluar dari banyak masalah.
Orang dapat melihat bahwa sistemnya belum benar-benar matang dan saya mengatakan ini karena:
sumber
Saya belum benar-benar menggunakan tumpukan penuh, tetapi kami menggunakannya sedikit demi sedikit dalam produk kami dan tampaknya cukup matang, meskipun kami harus menyesuaikan beberapa bagian untuk kebutuhan kami.
sumber
Saya akan berpikir begitu. Saya menggunakan kode-EF4 pertama (CTP) untuk mengembangkan aplikasi web multi-penyewa.
sumber
Saya pikir / harap begitu ... Saya memulai proyek dengan EF 4 dan pendekatan Model-First yang baru ...
Untuk apa yang saya lihat EF 4 jauh lebih kuat dan fitur lengkap bahwa versi pertama ... Saya akan mengatakan pergi untuk itu, saya tahu saya akan :)
sumber
Ya itu, namun Anda harus mengalokasikan sumber daya untuk memperbarui dan menguji ulang aplikasi Anda ketika pembaruan keluar (seperti halnya kerangka kerja lainnya).
sumber