您好我有一个使用附加的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存储模拟器
一切正常,直到我第一次执行以下步骤:
一个或多个文件与数据库的主文件不匹配。如果 您正在尝试附加数据库,请使用重试操作 正确的文件。如果这是现有数据库,则该文件可能是 已损坏,应从备份中恢复。\ 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名称的残余在哪里被保存?我该如何清理旧的剩菜?
答案 0 :(得分:1)
您不应尝试打开附加到SQL Server Express的.MDF文件。它可能会破坏.MDF和日志文件之间的一致性。 使用服务器资源管理器或SQL Server Management Studio连接到SQL Server Express服务器。 (还有Express的免费版本)
如果您确实想在Visual Studio中打开.MDF,请先从SQL Server Express中分离数据库。