Entity Framework

What are the pros and cons of this tool?  It reminds me a bit of hibernate, which is generally slow, and not very efficient.  I have not used it however, so anyone who actually has used it as part of an enterprise solution I would appreciate your opinion / experience with it.
Who is Participating?
Craig WagnerConnect With a Mentor Software ArchitectCommented:
Entity Framework is an ORM (object relational mapping) tool just like nhibernate. I disagree that nhibernate (or any ORM) is "generally" slow. They can absolutely be slow in some circumstances, but you have to use the right tool for the job.

Like any tool it depends on what you are trying to use it for. I personally think that for OLTP applications it's a huge time-saver for developers. Fill in an object graph, attach it to the context, and SaveChanges(). The framework figures out what needs to be inserted, updated, and deleted.

If you're trying to run reports or perform huge, complicated queries, stored procedures are probably a better way to go.

P.S. EF is the backbone of our data access strategry, but we still use sprocs when it makes sense.
Asim NazirConnect With a Mentor Commented:
Go through Q & A by Microsoft at http://msdn.microsoft.com/en-us/magazine/cc507640.aspx 
I have built a web application from the ground up using Entity Framework and, frankly, I find it to be faster than classic ASP.  Utilizing LINQ-to-Entities queries appropriately should provide very fast results and responses because the language is designed to enhance the query being requested.  This is still fairly young so I have faced a few minor drawbacks but that is only because I am on .Net Framework 3.5.  It is my understanding that the .Net Framework 4.0 has resolved the issues faced and I cannot wait for my enterprise to move to that platform which should be some time next quarter.  

As CraigWagner said it is a huge time saver for developers because you have an object context already created.  The framework is smart enough to know what CRUD operation to use but that isn't the nicest part.  Utilizing LINQ with EF gives you run-time support.  Because the queries are strongly-typed the compiler will know if the query being provided is successful and will throw an error during build prior to running the application if it is not.  This is unlike classic ASP where SQL queries were developed with strings and you were never sure that they worked until you actually run the query in debug.  This is a major time saver in itself.  

And there really is so much more!  Lastly, Microsoft is focusing on this project as well as LINQ-to-Entities (which is based on the context EF model) and this will be rapidly changing every new release.  

Hope this helps a bit,
Best of Luck
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.