Sì, ma con alcuni avvertimenti:
-
È completamente supportato da Microsoft e ha una community in crescita, ma essendo più recente del suo più vicino concorrente, ibernazione, non ha ancora una comunità abbastanza matura.
-
Oltre ad avere una comunità meno matura, ci saranno momenti in cui una funzione è disponibile con EF4 ma documentata appena ; oppure EF4 genererà eccezioni che Google non può aiutarti con
-
È completo se usato come previsto da Microsoft, ma secondo la mia esperienza può essere piuttosto difficile eseguire il retrofit in un sistema esistente. Idealmente lo userai in uno scenario greenfield con uno stack Microsoft al 100%. È certamente abbastanza flessibile da mescolarsi con altri sistemi, ma farlo aumenta notevolmente la difficoltà.
Tuttavia, per reiterare il punto principale, è completo e abbastanza stabile per l'uso di produzione.
Una cosa chiave da evidenziare, che sembra ovvia ma spesso trascurata fino a provocare dolore, è che un ORM lavora per mappare dal paradigma relazionale al paradigma OO. Se uno o l'altro di questi livelli non segue le regole del rispettivo paradigma, ti sentirai ferito ulteriormente.
Questo può andare in entrambe le direzioni: se sei esperto nel paradigma relazionale / set-based di SQL e OOP, allora l'ORM lascerà che i due si mescolino come burro. Se il tuo database sembra essere OO e il tuo codice OO sembra essere basato su record, allora YMMV.