【发布时间】:2011-09-20 21:57:59
【问题描述】:
我正在尝试在我的 MVC3 项目的共享视图中引用 System.Data.Entity.Validation(EF 4.1 版本)命名空间。我已经能够使用以下方法引用其他外部库:
@using Example.Namespace
但是,当涉及到作为新 4.1 EntityFramework 一部分的库时,我无法让同样的事情发挥作用。我尝试将以下内容添加到 Views 文件夹中的 web.config 中:
<add namespace="System.Data.Entity.Validation, EntityFramework, Version=4.1.10715.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
我认为我走在了正确的轨道上,因为现在智能感知正在为过去可以工作的其他外部命名空间而爆炸。有人可以帮我弄清楚 web.config 条目应该是什么样子吗?
编辑:明确地说,我试图在我的视图中最终使用 DbEntityValidationException,据我所知,它是 EntityFramework 4.1 DLL 的一部分。我正在关注这篇文章(http://stackoverflow.com/questions/3239006/how-to-import-a-namespace-in-razor-view-page)中的信息,这似乎表明我需要将命名空间声明添加到视图中的 web.config 文件部分(不是项目 WEB.CONFIG)。
我仍在处理这个问题,我发现将程序集添加到视图的 web.config 的 system.web/compilation/assemblies 部分也“有效”,因为它要么破坏所有智能感知,要么给我命名空间的一部分我想要。比如我加了:
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
这使我可以在视图中键入 System.Data.Entity,但之后智能感知中不会出现任何内容。如果我将其更改为:
<add assembly="System.Data.Entity.Validation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
关闭并重新打开项目后,智能感知中断了我视图中的所有内容,并且我看到以下错误:ASP.NET 运行时错误:无法加载文件或程序集 'System.Data.Entity.Validation, Version =4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。系统找不到指定的文件。
【问题讨论】:
标签: asp.net-mvc-3 entity-framework razor ef-code-first