无法findtypes或名称空间名称“DbContext”
我是非常新的ASP.NET MVC(3),我很难在Visual Studio中解决构build错误:
无法findtypes或名称空间名称“DbContext”(您是否缺lessusing指令或程序集引用?)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace MyProjectName.Models { public class MachineModel { // name [Required] [Display(Name = "Nom de la machine")] public string Name { get; set; } // IP [Required] [RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", ErrorMessage = "Donnez une adresse IPv4 valide.")] [Display(Name = "Adresse IP de la machine")] public string IP { get; set; } } public class MachineDbContext : DbContext { public DbSet<MachineModel> Machines{ get; set; } } }
我得到的两个错误是:
- 无法findtypes或名称空间名称“DbContext”(您是否缺lessusing指令或程序集引用?)
- 无法findtypes或名称空间名称“DbSet”(您是否缺less使用指令或程序集引用?)
我错过了什么?
我遇到过同样的问题。 原来,你需要EntityFramework.dll引用(而不是System.Data.Entity)。
我只是从MvcMusicStore应用程序,它可以从下载: http ://mvcmusicstore.codeplex.com/
这也是如何使用entity framework代码 – 首先与MVC的一个有用的例子。
您需要将System.Data.Entity
引用到您的项目中,或者安装EntityFramework
NuGet包,它将为您设置所有内容。
我有使用VS2010相同的问题。 我知道这不是一个真正的答案。 我只是认为这可能会帮助别人。 我通过使用DBContext的完全限定名来解决它。
代替
public class MachineDbContext : DbContext
我用了
public class MachineDbContext : System.Data.Entity.DbContext
并重build项目。 突然VS很高兴,我甚至能够删除完全限定的名称,只是使用DBContext。
只是一个简短的说明。 它是DbContext,而不是DBContext。 即小写字母“B”。 我发现这一点,因为我有同样的问题,而intelesense不工作,直到我尝试input全名空间System.Data.Entity …和名称,最后它build议小写'b'选项: –
System.Data.Entity.DbContext
我有同样的问题…从包pipe理器控制台安装EF为我工作
命令是: Install-Package EntityFramework
我有同样的问题..我有VS2010expression..
(注意:如果你看到这个问题,请尝试检查对EntityFramework.dll的引用。可能是缺less。)
下面为我解决了它。
我安装了最新的MVC 3工具更新
然后我安装了EntityFramework 4.1
或者使用NUGet即。 从Visual Studio 2010 Express(Tools-> Library Package Manager – > Add library Package reference – > Select Online – > EntityFramework)
奇怪的是没有工作..所以我不得不手动添加一个引用“EntityFramework.dll”
尝试search的DLL ..可能在这里
“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \”
如果你已经有了它,只需添加一个'.net'参考。
注意:如果您使用NuGet,它会在您的解决scheme目录旁边创build一个“包”文件夹。 你会发现它里面的“EntityFramework.4.1.10331.0”文件夹。在“Libs”文件夹,你会发现“EntityFramework.dll”。
使用“浏览”选项卡添加引用,并select上面的dll。
有关分步说明,请参阅此新的MVC / EF教程系列: http : //www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp -net-mvc-application本教程假设你已经安装了最新的MVC 3工具更新,并提供了一个链接,以防你没有。
如果你的编译器不能识别
- System.Data.Entity.Infrastructure
- 的DbContext
- DbSet
- et alii,
确保
- 你的机器上安装了Entity Framework 4.1;
-
在您的.csproj文件中,您有以下参考
<Reference Include =“EntityFramework,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089,processorArchitecture = MSIL”/>
元素内
<的ItemGroup> ... </的ItemGroup>
那里有其他程序集的引用。
我正在使用Visual Studio 2010 express并添加对C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
的引用解决了这个问题。
这真的很方便:
- 在解决scheme资源pipe理器中selectProjectNAme项目。
- 从工具菜单中,select包含子菜单的库包pipe理器。
- 从子菜单中select程序包pipe理器控制台。
- 在控制台的PM提示符下inputinstall-package EntityFramework,然后按回车。
Visual Studio Express SP1右键单击解决scheme资源pipe理器>引用>添加库包参考> EntityFramework
使用CTP5反而是API的一些变化的更新的版本。 您必须添加对CTP目录中安装的EntityFramework.dll的引用 – 默认为:32位系统的c:\ Program Files \ Microsoft ADO.NETentity frameworkfunctionCTP5 \ Binaries \ EntityFramework.dll。 在64位系统上,它将被放置在Program Files(x86)中。
当我分支代码时,这发生在我身上。 为了解决这个问题,我在Visual Studio中右键单击我的项目,selectpipe理Nu-get包,卸载EntityFramework,然后重新安装它。 问题解决了
我刚刚有这个问题,没有其他解决scheme为我工作。 我正在使用Visual Studio 2010,我的解决scheme中有两个项目:UIProject和DataAccessProject。 UIProject有对DataAccessProject的引用。
我的UIProject是针对.Net Framework 4,但我的DataAccessProject针对.Net Framework 3.5出于某种原因。
- 我将这两个项目都改为了.Net Framework 4
- 卸载然后重新安装entity frameworkNuGet包。
问题解决了。 现在我有对EntityFramework和System.Data.Entity的引用
我有同样的问题。我添加引用entityframework后,必须重写“DBContext”,它解决了这个问题。
这意味着Visual Studio无法自动识别该类,并等待它重新input。 所以最好先添加引用,然后再实现代码。 VS 2013 – 最终使用
我必须先卸载EntityFramework(Uninstall-package EntityFramework(不区分大小写)),然后再次安装(Install-package EntityFramework),通过PM Console
您的项目无法parsingEntityFramework类,直到您没有将其添加到项目中。 要添加EntityFramework支持,你必须按照下面的步骤:工具 – > Nuget包pipe理器 – >pipe理Nuget包的解决scheme浏览EntityFramework它显示最新的稳定的EntityFramework版本。 目前6.1.3是最新版本安装它为选定的项目。
我有这个问题,阅读上面的答案,并下载entityframework.ddl,但发现它是alreadt引用。 所以我添加了命名空间,问题解决了
使用System.Data.Entity;
我正在使用Visual Studio 2010 SP1安装
引用了entityframework.dll都system.data.entity工作。
我有同样的错误,但问题只是我的模型意外的问题。
我不小心把…
public class MyModelDBContext : Context { public DBSet<MyModel> MyModels { get; set; } }
在模型类里面
作为替代方法,你可以去这里 – 指导如何安装任何所需的DLL。
或者你可以下载NuGet并从VSpipe理它
右键点击你的参考,然后去pipe理NuGet软件包,然后select在线全部,然后在search文本框中inputNuGet软件包源typesentity framework并安装它。
1)从所有项目中卸载entity framework
2)重新启动Visual Studio
3)重新安装到所有需要的项目
并开始工作
有些情况下你可以引用你需要的所有东西,你甚至可以通过按DbContext类的F12来转到定义,该类将你带到System.Data.Entity命名空间,但是你仍然会得到这个令人讨厌的编译器警告。 确保您的项目的目标框架和您使用的entity framework版本的目标框架匹配。 进入项目 – >属性 – >应用程序选项卡。 更改目标框架(不能准确地说,哪一个,试验和错误将有所帮助)。 只是我的两分钱。
我也很烦恼这个问题很多次,最后find解决办法。转到EDMX文件 – >更新模型从数据库 – >刷新 – >完成。 清洁解决scheme – >重build解决scheme
下载http://www.dll-found.com/download/e/EntityFramework.dll
将其粘贴到(对于x86)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\
然后右键点击项目 – >添加引用 – >selectEntityFramework
答对了……
你可以试试包pipe理器控制台
PM> EntityFrameWork \ enable-migrations
VS2017,EF6,closures解决scheme。 重新打开解决scheme。 它现在正确识别DbContext。
- 未find方法:'!! 0 System.Array.Empty()'。 ASApp.BundleConfig.RegisterBundles(BundleCollection包)inBundleConfig.cs
- 如何清除glyphicons-halflings-regular.woff2错误not found
- 一个或多个实体的validation失败,同时使用entity framework保存对SQL Server数据库的更改
- Asp.Net MVC:为什么我的视图传递NULL模型回到我的控制器?
- WCF服务与asp.net mvc应用程序
- 将PDFstream写入响应stream
- 如何在ASP.NET MVC中创build一个CheckBoxListFor扩展方法?
- 如何在MVC中设置默认路由(到区域)
- ASP.NET MVC – 使用相同的表单来创build和编辑