References for DBContext, DBSet<> in Entity Fra

2019-03-22 19:40发布

问题:

I am trying to use ADO.Net Codefirst feature of latest Entity Framework 4.0. As part of that I have installed Entity Framework CTP 4 from Microsft and using Scott's tutorial to create the model first. Inside the tutorial DBContext and DBSet<> is specified. Could some tell what is the reference to be used in order to access this class.

I have used the following references however nothing happens for DBContext and DBSet<>

  • System.Data.Entity
  • System.Data.Entity.Design

回答1:

Use CTP5 instead it is newer version with some changes in API. You have to add reference to EntityFramework.dll which is installed in CTP directory - default is: c:\Program Files\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\EntityFramework.dll for 32bit system. On 64bit system it will be placed in Program Files (x86).



回答2:

You can use the Library Package Manager if you have it (it installs automatically with MVC 3.0).

From within your project in Visual Studio 2010, go to

Tools > Library Package Manager > Package Manager Console

From within your project in Visual Studio 2013, go to

Tools > NuGet Package Manager > Package Manager Console

In the console, after the PM> prompt, type

install-package entityframework

This will install the package and add the EntityFramework reference to your project.



回答3:

Use "DbContext" vs "DBContext", and "DbSet" vs "DBSet". The case sensitivity is the issue.



回答4:

To add EF to your project use the Package Manager Console and issue the command:

Install-Package EntityFramework

You shouldn't link directly to the DLLs' installed location as mentioned in another answer.



回答5:

The blogpost mentions the assembly:

The DbContext and DbSet classes used above are provided as part of the EF4 Code-First library. You’ll need to add a reference to the System.Data.Entity.CTP assembly that is installed into the \Program Files\Microsoft ADO.NET Entity Framework Feature CTP4\Binaries directory to reference these classes. You’ll also want to add a “using System.Data.Entity” namespace statement at the top of your “NerdDinners” class file.

However I do believe the new CTP5 includes some changes to codefirst, so I would suggest to take a look at that one instead.



回答6:

I was following the MvcMusicStore Tutorial (using Mvc 4 instead of Mvc 3).

I found in Part 4 I was having issues with this (http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4).

When I added the following reference using System.Data.Entity;, I got the following error:

the type or namespace name 'entity' does not exist in the namespace 'system.data'

@Fecklmore's solution worked for me.

Open the Package Manager Console by going to Tools > Library Package Manager > Package Manager Console.

Then type in the following: Install-Package EntityFramework

This will install EntityFramework (i.e. EF) into your project, and will eliminate the error above.



回答7:

if you are using .NET 3.5 then change your target framework to .NET 4.0