WebMatrix 2无法识别EntityFramework助手

时间:2012-12-11 23:21:34

标签: entity-framework dll webpage webmatrix

我刚刚开始研究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,但事实并非如此。我需要帮助,因为我真的输了。

1 个答案:

答案 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开发网站的合适工具。