【发布时间】:2014-12-28 10:54:29
【问题描述】:
是否有什么东西会导致实体框架数据库上下文无法生成其文件,需要重新启动才能再次生成(这也可能会更改默认调试项目)?
我的详细信息:
所以我有一个现有的、工作的、生产中的 ASP.NET MVC 3 Web 应用程序,它使用实体框架连接到 SQL Server 2008 R2 数据库,该数据库是在 Visual Studio 2010 中构建的。
前几天,当它突然开始构建失败时,我认为我没有做任何其他事情,即编辑 CSHTML 文件中的一行(删除两个对 DateTime 的 Razor 引用),报告如下:
C:...\DataLayer.cs(38,20):错误 CS0246:找不到类型或命名空间名称“FooEntities”(您是否缺少 using 指令或程序集引用?)
C:...\DataLayer.cs(57,12): error CS0246: 找不到类型或命名空间名称“FooEntities”(您是否缺少 using 指令或程序集引用?)
即,实体框架数据库连接以某种方式中断。通常定义 FooEntities 的文件是由实体框架自动生成的,该文件基本上是空的。通常它会自动生成一个定义文件,其中对 FooEntities 的引用如下所示:
public partial class FooEntities : ObjectContext
FooData.edmx 文件仍然出现在 IDE 中,但起初当我尝试使用“从数据库更新模型”重新生成它时,它什么也没做。在 Windows 7 重新启动后,该更新确实在没有任何投诉的情况下运行,并导致该定义文件重新生成。然后构建的解决方案没有错误。
但是在我这样做之后,我还发现 DataLayer 项目现在被标记为(粗体)默认调试项目,而不是 UI 项目。 有什么东西可以自动改变它,或者我可能不小心点击了一些快捷方式来改变它?
我去了我的源代码控制并做了一个差异,我的源代码或配置文件没有意外或相关的变化 - 仅在 .suo 和自动生成的实体框架文件 (.\datalayer\obj\debug \designtimeresolveassemblyreferencesinput.cache .\datalayer\datastore.context.cs)。
问题似乎解决了,有没有其他人看到过这样的事情,或者猜猜是什么原因造成的?
【问题讨论】:
标签: visual-studio-2010 entity-framework asp.net-mvc-3