I am following the database approach first; I have created the tables in my SQL Server 2008 database, then I map those tables to Entity Framework classes using an ADO.NET Entity Data Model. But when I opened the designer.cs file I found the following code in the class definition which was created automatically:
public partial class PortalEntities : ObjectContext
so I have the following three question that get my confused:
Why does my
PortalEntities class derive from
ObjectContext and not
DbContext as I was expecting?
Is there a major difference between
DbContext, or they are mainly the same and offer that same capabilities
When I try to write the something similar to the following code:
Student student = db.Students.Find(id);
I found that I cannot use
.Find() method as I used to do using
DbContext, so does this mean that
DbContext have different methods that I can use?
DbContext is a wrapper around the
ObjectContext which simplifies the interface for the things we do most.
If you have an
DbContext you can still access the
If you want to use the
DbContext instead of the
ObjectContext when using database first, you can switch the template that's used for generating your code. You can do this by right-clicking in your EDMX and selecting 'Add Code Generation Item'. You can then select the DbContext template.
Here is an example of the whole process.
Since VS2012 the default code generation changed from