首先是ASP.NET MVC3 EF4.1代码中的数据库错误

时间:2012-03-19 22:14:04

标签: asp.net-mvc entity-framework windows-phone-7 azure

您好我有一个使用附加的mdf文件的应用程序,其中包含以下连接字符串:

<add name="SqlDataContext" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=true;User Instance=true;AttachDBFilename=|DataDirectory|\WPCloudApp26.mdf;Initial Catalog=WPCloudApp26;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

我正在使用Windows手机云应用程序模板,并且我的电脑上运行了azure存储模拟器

一切正常,直到我第一次执行以下步骤:

  1. 我想查看数据库,所以当应用程序未运行时,我通过visual studio双击app_data / WPCloudApp26.mdf文件。当我双击它时,数据库在服务器资源管理器窗格中的数据连接下打开,我可以看到数据库和所有表。到目前为止一切都很好
  2. 我查看了db,所以我通过右键单击关闭连接 - &gt;关闭连接。
  3. 我想再次运行应用程序,当我运行它时,所有地狱都会松动。我收到以下错误消息:
  4.   

    一个或多个文件与数据库的主文件不匹配。如果   您正在尝试附加数据库,请使用重试操作   正确的文件。如果这是现有数据库,则该文件可能是   已损坏,应从备份中恢复。\ r \ n无法打开   登录请求的数据库\“WPCloudApp26 \”。登录   用户'NT AUTHORITY \ NETWORK失败。\ r \ n登录失败   SERVICE'。\ r \ n日志文件'C:\ Users \ michael \ Documents \ Visual Studio   2010 \项目\ WPCloudApp26 \ WPCloudApp26 \ WPCloudApp26.Web \ App_Data文件\ WPCloudApp26.ldf”   与主文件不匹配。它可能来自不同的数据库   或者以前可能已经重建了日志。

    方法var firstItem = context.SqlSampleData.FirstOrDefault();

    抛出异常

    多数民众赞成,无论我做什么,我都无法再次运行该应用程序。这让我抓狂,因为唯一需要帮助的是创建一个具有不同名称的新解决方案(这就是为什么我得到26号)

    发生了什么事?为什么只有在我第一次尝试在visual studio中查看数据库之后才会发生这种情况?

    修改 我注意到,更改连接字符串中的初始目录和mdf文件可以解决问题。那么db名称的残余在哪里被保存?我该如何清理旧的剩菜?

1 个答案:

答案 0 :(得分:1)

您不应尝试打开附加到SQL Server Express的.MDF文件。它可能会破坏.MDF和日志文件之间的一致性。 使用服务器资源管理器或SQL Server Management Studio连接到SQL Server Express服务器。 (还有Express的免费版本)

如果您确实想在Visual Studio中打开.MDF,请先从SQL Server Express中分离数据库。

相关问题