ADO.NET DbContext Generator vs. ADO.NET Poco Entity Generator (ObjectContext)

32,536

From a point of view of clean creation of POCO entities, there is no difference between the two generators. Both generators produce the same entities, however, ADO.NET POCO Entity Generator is based on ObjectContext's API, whereas ADO.NET DbContext Generator is based on DbContext's API.

DbContext's API has a few very nice new features (Local, Query on navigation property, etc.) and API is somehow simplified but at the same time it looks like some features used in ObjectContext API are missing in DbContext API (or at least it has not been explored enough yet).

EF 4.1 RC is go-live release. It means that you can build a real application with it because API will not change in RTW (only bugs will be fixed). Also RTW should be in the next month so I think you will not be ready with your application before the final version is shipped.

ObjectContext API or DbContext API? ObjectContext API is much better covered by documentation and blog posts. You can find plenty of examples about it. Also its limitations are already well known. DbContext API is new release. A very promising release, mostly because of the code-first approach. There is still a very limited number of blog posts, no book and the API is not proven enough. So it depends if you are ready to fight with new API? If not, then ObjectContext API is still a good choice because you don't need the code-first approach.

Share:
32,536
Nelson Reis
Author by

Nelson Reis

I'm a developer with several years of experience in the .NET stack, creating solutions using several technologies, including ASP.NET, MVC, WPF, Silverlight, JavaScript and others. I really love combining the creative process and the technical aspects of coming up with ideas and making them alive in cool and valuable applications. As an hobby, I like to learn about all the exciting stuff related to software development, from agile methodologies, to design patterns and new technology trends.

Updated on July 09, 2022

Comments

  • Nelson Reis
    Nelson Reis almost 2 years

    I am about to start implementing the data access infrastructure of a project that was architected with an approach to DDD (it's my first attempt on DDD, so be gentle ;-) ).

    I will be using Entity Framework. Until now, I was looking into the method teached by Julie Lerman on her great book, Programming Entity Framework, where ADO.NET POCO Entity Generator is used, with some changes to the T4 templates and some more custom code.
    Today I started reading articles on EF4.1 and the ADO.NET DbContext Generator, using Database First approach, and I'm trying to decide with which one should I go.

    DbContext and EF4.1's approach on DDD seems to be a nice, cleaner way than POCO Entities, but I'm afraid that it could lead to some issues in the near future, since EF4.1 is still in RC.

    From ADO.NET team blog, I know that EF4.1 does not include:

    • Enum support
    • Spatial data type support
    • Stored Procedure support in Code First
    • Migration support in Code First
    • Customizable conventions in Code First

    From my understanding, since I will be using Database First there is a smaller number of features that were not included.

    In conclusion, my question is:
    Can I replace POCO Entities Generator with EF4.1 DbContext Generator?