Sim, mas com algumas ressalvas:
É totalmente suportado pela Microsoft e tem uma comunidade em crescimento - mas, sendo mais novo que seu concorrente mais próximo, o nHibernate, ainda não tem uma comunidade tão madura.
Além de ter uma comunidade menos madura, haverá momentos em que um recurso está disponível no EF4, mas pouco documentado; ou EF4 lançará exceções com as quais o Google não pode ajudá-lo.
Ele possui todos os recursos quando usado como a Microsoft pretende, mas, na minha experiência, pode ser bastante difícil adaptar a um sistema existente. Idealmente, você o usará em um cenário greenfield com uma pilha 100% da Microsoft. Certamente é flexível o suficiente para se misturar com outros sistemas, mas isso aumenta substancialmente a dificuldade.
No entanto, para reiterar o ponto principal, ele é completo e estável o suficiente para uso na produção.
Uma coisa importante a ser destacada, que parece óbvia, mas geralmente é negligenciada até causar dor, é que um ORM trabalha para mapear do paradigma relacional para o paradigma OO. Se um desses níveis não seguir as regras de seu respectivo paradigma, você se sentirá mais magoado.
Isso pode acontecer nos dois sentidos - se você conhece bem o paradigma relacional / baseado em conjuntos de SQL e OOP, o ORM permitirá que os dois se misturem como manteiga. Se o seu banco de dados parece que ele quer ser OO e o código OO parece que ele quer ser baseado em registros, então YMMV.
Temos usado a EF em várias aplicações de produção. Também temos o NHibernate em vários aplicativos de produção. O comentário da STW de que a EF funciona melhor "quando usado como a Microsoft pretende" é certamente verdadeiro. Também é verdade que o NHibernate funciona melhor quando usado seguindo os padrões pretendidos pela equipe do NHibernate. Não tenho conhecimento ou experiência com XPO.
Não me arrependo de colocar o NHibernate em produção.
Não me arrependo de colocar o Entity Framework em produção.
Um dos fatores determinantes para o uso da EF foi a integração com o LINQ. Eu sei que o NHibernate também trabalhou muito com o LINQ, mas ainda não teve tempo de investigar isso.
fonte
Estamos usando o EF4.1 com a abordagem Code First em nosso projeto da Web e, conforme declarado anteriormente, mantendo o uso conforme pretendido pela Microsoft, evitará muitos problemas.
Pode-se notar, no entanto, que o sistema ainda não está maduro e digo isso porque:
fonte
Na verdade, eu não usei a pilha cheia, mas a usamos em partes em nosso produto e parece bastante madura, embora precisássemos adaptar algumas peças para nossas necessidades.
fonte
Eu acho que sim. Estou usando o CTP (código-primeiro EF4) para desenvolver um aplicativo da web com vários inquilinos.
fonte
Eu acho / espero que sim ... Estou iniciando um projeto com o EF 4 e a nova abordagem Model-First ...
Pelo que eu vi, o EF 4 é muito robusto e possui recursos completos que a primeira versão ... Eu diria que vá em frente, eu sei que vou :)
fonte
Sim, porém, você deve alocar recursos para atualizar e testar novamente seu aplicativo quando as atualizações forem lançadas (como em qualquer outra estrutura).
fonte