【问题标题】:This MVC Futures code will not execute. Why is it failing to recognize the System.Data.EntityState?此 MVC 期货代码将不会执行。为什么无法识别 System.Data.EntityState?
【发布时间】:2011-07-19 13:05:36
【问题描述】:

我将 MVC Futures Base 模板复制到我的项目中。此代码将不会运行。

@using System.Data;
@functions{
    bool ShouldShow(ModelMetadata metadata) {
        return metadata.ShowForEdit
            && metadata.ModelType != typeof(System.Data.EntityState) <--This gives an error that entityState does not exist in namespace System.Data
            && !metadata.IsComplexType
            && !ViewData.TemplateInfo.Visited(metadata);
    }
}

【问题讨论】:

  • 您的项目中是否引用了 System.Data.Entity.dll?
  • 绝对。 System.Data 也是如此。此外,如果这是问题所在,程序将无法构建,在我的服务中我使用 System.Data.EntityState。

标签: asp.net-mvc-3 web-config razor asp.net-4.0


【解决方案1】:

在您的主要~/web.config不是~/views/web.config 中的那个)文件的&lt;assemblies&gt; 部分添加以下行:

<assemblies>
    ...
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>

这将确保从视图中动态生成的程序集将引用此程序集,以便您可以使用其中的类型。

【讨论】:

  • 即使枚举是 System.Data 命名空间的一部分?
  • 该死。我是个白痴。我现在在 MS 文档的最顶部看到,程序集名称是 System.Data.Entity。
【解决方案2】:

作为参考,如果您没有在项目中使用 EntityFramework(如我自己),可以安全地删除该行并避免错误而不包括 EF。

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多