我刚刚开始研究WebMatrix,我做了this教程来学习基础知识,然后我开始使用this来开始使用WebMatrix上的Entity Framework(注意:该教程适用于WebMatrix 1,但我唯一看到的改变是你在项目中安装助手的方式)。问题是,我安装了Entity Framework帮助程序,但我的项目无法识别EntityFramework.dll。
我收到此错误The type or namespace name 'MaxLength' could not be found (are you missing a using directive or an assembly reference?)
。但EntityFramework.dll确实出现在我的bin文件夹中,发生了什么?我不明白为什么引用不起作用。
根据第二个教程,在安装EntityFramework助手之后,这是我的Web.config文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<system.web>
<compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></assemblies></compilation>
</system.web>
<connectionStrings>
<add name="BookContext" connectionString="Data Source=|DataDirectory|Books.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
</configuration>
这是编译器输出link
我错过了什么吗?为什么我的项目无法正确识别EntityFramework.dll?
更新
当我从Visual Studio 2012中创建的网页项目复制EntityFramework.dll时,我认为问题已解决,但即使错误不再显示,WebMatrix仍然无法识别表,列,ForeignKey等注释,InverseProperty等。
我真的不明白,创建了一个简单的数据库但是我不能使用EntityFramework注释来指定数据库所需的全部内容。 WebMatrix应该识别EntityFramewor.dll,但事实并非如此。我需要帮助,因为我真的输了。
答案 0 :(得分:2)
您看到的错误是您网站上安装的EntityFramework版本的最终结果。
EntityFramework 5.0软件包安装EntityFramework.dll的4.4或5.0版本,具体取决于项目所针对的.NET(4.0或4.5)版本。
根据我的经验,从WebMatrix中的NuGet Gallery安装EntityFramework总是将EntityFramework.dll的4.4版复制到bin文件夹中:你可以查看它看看属性 - &gt; EntityFramework.dll文件的详细信息。
我所知道的唯一解决方案是使用VisualStudio Express或其他独立实用程序下载EntityFramework v.5.0(查看此帖子:Install Entity Framewok v5 in Webmatrix 2 RC)并简单地将WebMatrix中NuGet Gallery安装的dll替换为此。< / p>
<强>更新强>
使用EntityFramework v.5.0和WebMatrix进行实验的其他问题是类型'System.Data.EntityState'是在未引用的程序集中定义的并且需要using指令for DataAnnotations.Schema 。
解决了第一个问题,将以下引用添加到web.config(查看Could not load file or assembly 'System.Data.Entity):
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
第二个问题需要添加指令
using System.ComponentModel.DataAnnotations.Schema;
代码。
无论如何,在我看来,WebMatrix不是基于EntityFramework开发网站的合适工具。