【问题标题】:Using MVC, Entity Framework cannot find assembly reference使用 MVC,Entity Framework 找不到程序集引用
【发布时间】:2011-04-21 19:07:45
【问题描述】:

我正在尝试在 VS 中将 EntityFramework 与 mvc 3 一起使用。我已经在引用下安装了 EntityFramework,但是当我尝试在行中使用框架时

using System.Data.Entity.ModelConfiguration.Conventions.Edm.db;

我在 .edm 下收到一个红色错误提示

命名空间或名称“Edm”在命名空间“System.Data.Entity.ModelConfiguration.Conventions”中不存在(您是否缺少程序集引用?)

最初我以为我有一个旧版本的 EntityFramework,所以我卸载了软件包并重新安装了最新版本,但我仍然收到同样的错误。

我需要安装其他软件包吗?

【问题讨论】:

  • 检查你的 MVC 项目的目标框架。我之前有一个问题,Visual Studio 将目标框架默认为 .NET 4 Framework (Client Profile) 而不是 .NET 4 Framework
  • 谢谢,但目标框架设置为 .NET 4 Framework

标签: c# entity-framework asp.net-mvc-3


【解决方案1】:

您可能会发现这个新的 MVC 3 / EF 教程系列很有帮助: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application 它基于 Code First 和最新的 MVC 3 工具更新。

【讨论】:

    【解决方案2】:

    命名空间 System.Data.Entity.ModelConfiguration.Conventions.Edm 存在于旧版本的 Entity Framework CTP5 中。它已在 EF 4.1 RTW(您现在安装的最新版本)中删除。

    您可能正在使用一些基于 CTP5 的旧项目或演示。迁移到 EF 4.1 通常相当容易;这些功能大部分仍然存在,可能在其他命名空间下或稍微重命名。

    【讨论】:

    • 谢谢,这是有道理的。但是如果我尝试使用方法“代码”受保护的覆盖 void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Conventions.Remove(); }' EF4.1 下会引用哪个命名空间?
    • @Bryan:检查文档怎么样?您听说过 MSDN 库吗? msdn.microsoft.com/en-us/library/gg696316%28v=VS.103%29.aspx
    • 谢谢,帮了大忙。在新的 4.1 中,实体是否仍以复数形式访问?
    • @Bryan: 1) 将 ModelBuilder 重命名为 DbModelBuilder(EF 4.1 中的类名已更改),2) using System.Data.Entity; 用于 DbModelBuilder,3) using System.Data.Entity.ModelConfiguration.Conventions; 用于 PluralizingTableNameConvention,4 ) 是的,Ladislav 的链接很好。
    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2021-07-17
    相关资源
    最近更新 更多