我的系统上的文件在哪里?

时间:2012-08-29 01:04:22

标签: asp.net-mvc database vwdexpress

我正在尝试学习ASP.NET MVC并搜索包括SO在内的互联网。关于| DataDirectory |的很多问题和答案在哪里以及如何。

调试网站中断时:

"The model backing the 'ASPNETDBContext' context has changed since the database was created..."

然后我检查了路径:|DataDirectory|ASPNETDBContext.sdf

 string path = AppDomain.CurrentDomain.GetData( "DataDirectory" ).ToString();

它指向项目的App_Data但没有文件。

数据库完全是空的,所以我只需要删除它。

我的实际问题我需要回答:如何正确解决这个问题?

made a follow-up: And additionally: Where is that file!

1 个答案:

答案 0 :(得分:1)

您的问题的答案在于阅读Scott Guthrie's blog

  

对于那些看到此例外的人:

     

“自创建数据库以来,支持'Production'上下文的模型已更改。手动删除/更新数据库,或使用IDatabaseInitializer实例调用Database.SetInitializer。”

     

以下是该怎么做以及如何应对:

     

首次创建模型时,我们运行DatabaseInitializer来执行创建数据库(如果不存在)或添加种子数据等操作。默认的DatabaseInitializer尝试将使用模型所需的数据库模式与存储在使用数据库创建的EdmMetadata表中的模式的哈希进行比较(当Code First是创建数据库的模式时)。现有数据库将没有EdmMetadata表,因此不会有哈希...如果缺少该表,今天的实现将抛出。我们将在发送fial版本之前更改此行为,因为它是默认版本。在此之前,现有数据库通常不需要任何数据库初始化程序,因此可以通过调用它来关闭上下文类型:

Database.SetInitializer<Production>(null);

希望这可以帮助您解决问题。