I'm looking into Entity Framework for a new project that I'm going to be taking on and as part of my research into it I'm asking some industry professionals if it's stable and ready for 'real world' implementation.

In the running is:

  • EF
  • NHibernate
  • DevExpress XPO

I already have a great deal of experience with XPO, but I'm not particularly happy with it.

7 Answers 7


Yes, but with some caveats:

  • It's fully supported by Microsoft, and has a growing community--but being newer than its closest competetor, nHibernate, it still doesn't have quite as mature a community.

  • Along with having a less mature community, there will be times where a feature is available with EF4 but barely documented; or EF4 will throw exceptions which Google can't help you with.

  • It is full-featured when used as Microsoft intends, but in my experience it can be quite difficult to retrofit into an existing system. Ideally you'll use it in a greenfield scenario with a 100% Microsoft stack. It's certainly flexible enough to intermingle with other systems, but doing so increases the difficulty substantially.

However, to reiterate the main point, it is complete and stable enough for production use.

One key thing to point out, which seems obvious but is often overlooked until it causes pain, is that an ORM works to map from the relational paradigm to the OO-paradigm. If either of these tiers doesn't follow the rules of its respective paradigm then you'll feel extra hurt.

This can go both ways--if you're well versed in the relational/set-based paradigm of SQL and OOP then the ORM will let the two intermingle like butter. If your database looks like it wants to be OO, and your OO-code looks like it wants to be record-based, then YMMV.

  • +1: Thanks for the info. Fortunately, the project is a greenfield one almost entirely in the .NET stack (still debating between mysql and sql server), and I'm going to be modelling the domain first (and hopefully generating the table structure) Oct 27, 2010 at 20:25
  • @SnOrfus: FWIW I've started using EF on top of MySQL recently, and really enjoy it.
    – Eric King
    Oct 29, 2010 at 21:13

We have been using EF in several production applications. We also have NHibernate in several production apps. The comment by STW that EF works best "when used as Microsoft intends" is certainly true. It is also true of NHibernate that it works best when used following the patterns that the NHibernate team intended. I have no knowledge or experience with XPO.

I do not regret putting NHibernate into production.
I do not regret putting Entity Framework into production.

One of the driving factors to use EF was the integration with LINQ. I know that NHibernate has done a lot of work with LINQ as well but have not had the time to investigate that as yet.

  • Working with both is a great way to learn how to work with both. It's a little like learning both VB.NET and C#--you ask questions when you see differences, and asking those questions greatly enhances your understanding in the end.
    – STW
    Oct 27, 2010 at 19:59

We are using EF4.1 with the Code First approach for our web project and as stated previously keeping the usage as Microsoft has intended it will keep you out a lot of problems.

One can notice however that the system isn't really mature yet and I say this because:

  1. Behaviour still changes a lot (compared from CTP5 to 4.1)
  2. The LINQ to Entities generator is only able to handle basic types (Int, String, the lot)
  3. Some things didn't work entirely intuitively when you try to merge in existing datasets
    1. It doesn't allow you to only create table definitions for certain dbsets
    2. Mapping fields such as datetimes requires Googling.
  4. See other Known Issues

I haven't actually used the full stack, but we use it piecemeal in our product and it seems quite mature, though we had to adapt some pieces for our needs.


I would think so. I'm using EF4 code-first (CTP) for developing a multi-tenant web application.

  • +1 - Yes, I've done some coaching in a team that used it intensively in a very large enterprise project, and it worked pretty well. That was with the first version, not the latest. So I'm sure it's 100% safe to use the latest version.
    – user2567
    Oct 27, 2010 at 17:21
  • I don't know how you can be 100% sure of any software you haven't actually run in a production environment.
    – Jeremy
    Oct 27, 2010 at 18:20

I think/hope so... I'm starting a project with EF 4 and the new Model-First approach...

For what I've seen EF 4 is much robust and feature complete that the first version... I would say go for it, I know I'm going :)


Yes it is, however you should allocate resources for updating and retesting your application when updates comes out (as with any other framework).

Not the answer you're looking for? Browse other questions tagged or ask your own question.