DbContext is a lightweight version of the ObjectContext class, which is laid almost right on top of ObjectContext (there is even a way to get to the ObjectContext from just the DbContext).
It's also a lot easier to use, IMO, and makes CRUD operations a sinch.
ObjectContext is a class that manages all the database operations, like database connection, and manages various entities of the Entity Model. We can say that ObjectContext is the primary class for accessing or working together with entities that are defined in the conceptual model.
ObjectContext is responsible for:
- Database connection
- It provides builtin Add, Update and Delete functions
- Object Set of every entity
- Provide State of pending changes
- It holds the changes done in entities
DbContext is conceptually similar to ObjectContext. DbContext is nothing but a ObjectContext wrapper, we can say it is a lightweight alternative to the ObjectContext. DbContext can be used for DataBase first, code first and model first development. DbContext mainly contains a set of APIs that are very easy to use. The API is exposed by ObjectContext. These APIs also allow us to use a Code First approach that ObjectContext does not allow.
For More: http://thedatafarm.com/data-access/accessing-objectcontext-features-from-ef-4-1-dbcontext/