我试图在我的 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,但此后 Intellisense 中不会出现任何内容。如果我把它改成:
<add assembly="System.Data.Entity.Validation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
关闭并重新打开项目后,智能感知会破坏我视图中的所有内容,并看到以下错误:ASP.NET 运行时错误:无法加载文件或程序集“System.Data.Entity.Validation,版本=4.0”。 0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089' 或其依赖项之一。该系统找不到指定的文件。