关于EntityFramework在vs2012无法引用的问题
这段时间学习MVC,发现一个问题,我公司的电脑可以直接引用EntityFrameWork这个命名空间,但我家里面的电脑就不能直接引用,刚开始以为是我电脑配置问题,后重装电脑,发现问题并没有解决。
今天晚上在网上好好找了找原因,发现我公司电脑因为装了visual studio2010和2012两个版本,EntityFramework是.net framework 3.5出来的,也就是说如果安装了visual studio 2010是默认有这个配置,你可以直接引用。
但我家里面的电脑是直接安装的visual studio 2012,默认直接是.net framework 4.0和4.5两个版本。所以默认是没有EntityFramework的。
那怎么解决呢?
在visual studio 2012中已经内置了一个插件,名叫:NuGet Package Manager,可通过
vs 工具-》库程序包管理器-》程序包管理器控制台,打开控制台。
【 程序包管理器控制台主机版本 2.1.31002.9028 键入“get-help NuGet”以查看所有可用的 NuGet 命令。 PM> 】
在PM>输入 Install-Package EntityFramework,然后会得到出错提示 【 PM> Install-Package EntityFramework Install-Package : 当前环境未打开任何解决方案。 所在位置 行:1 字符: 16 】
也即,需要在一个工程项目中使用此方式,新建一个c#控制台应用程序,命名为EFDemo,再执行如上操作,会在线下载最新稳定版本即5.0并安装,成功则结果如下:
【 PM> Install-Package EntityFramework 已成功安装“EntityFramework 5.0.0”。 已成功将“EntityFramework 5.0.0”添加到 EFDemo。 Type ‘get-help EntityFramework’ to see all available Entity Framework commands. 】
安装后的变化 上述操作执行完毕后,会发现项目变化
1.新增了一个packages.config文件
<?xml version=”1.0″ encoding=”utf-8″?> < packages> < package id=”EntityFramework” version=”5.0.0″ targetFramework=”net40-Client” /> < /packages>
2.app.config文件中根节点中新增了一行配置(从配置文件来看,所说的5.0,实际内部版本号是4.4)
<configSections> < !– For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 –> < section name=”entityFramework” type=”System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ requirePermission=”false” /> < /configSections>
3.项目引用下新增了一个EntityFramework,指向c:*****EFStudypackagesEntityFramework.5.0.0lib et40EntityFramework.dll(EFStudy为解决方案名称)
4.该项目所在的解决方案下增加了名为“packages”的目录,里面存放包括dll在内的与ef5.0相关的文件。
按照如上步骤,可以在vs2010上安装EF5.0。
不过不得不吐槽:微软的这种方法,确实很不方便。
希望对你能有所帮助。^_^