首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略VS2010代码第一个MVC3 SQL默认Logfile.ldf名称格式,创建第二个logfile_log.ldf文件

问忽略VS2010代码第一个MVC3 SQL默认Logfile.ldf名称格式,创建第二个logfile_log.ldf文件
EN

Stack Overflow用户
提问于 2013-03-29 11:36:14
回答 3查看 246关注 0票数 0

使用VS2010代码优先和带有MVC3 webapp的SQL Server2008r2,SetInitializer可以在缺少或更改模型时按预期创建数据库。

创建的数据库文件名格式为database.mdf,日志文件格式为** database.ldf (默认的"name.ldf“格式可以改为”name_log.ldf“吗?)

当使用VS2010服务器资源管理器(在解决方案资源管理器中双击数据库)打开数据库时,VS2010会创建一个新的格式为database_log.ldf的第二个日志文件。

我现在可以在VS2010服务器资源管理器中浏览数据库,但不能再调试、删除模型更改或以其他方式使用数据库。

尝试调试时显示的错误为:{“一个或多个文件与数据库的主文件不匹配。如果您正在尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则文件可能已损坏,应从备份中还原。\r\n无法打开登录所请求的数据库\" database \“。登录失败。\r\n用户‘My-PC\Me’登录失败。\r\n日志文件'C:\Users\Me\project\App_Data\database.ldf‘与主文件不匹配。它可能来自不同的数据库,或者日志可能以前已经重建过。“}由于项目期望当前的日志文件为"database.ldf”,因此...which是足够公平的。

ASPNETDB.MDF和aspnetdb_log.ldf文件/名称也会被创建,并且没有默认日志文件名问题,因此该问题不适用于ASPNETDB。

是否可以更改SetInitializer的默认日志文件名,以创建"database_log.ldf“格式的日志文件名而不是"database.ldf"?我在谷歌上搜索,但没有成功,并查看了我在VS2010中能找到的所有设置和选项。格式是否存储在可手动编辑的配置文件中?

EN

回答 3

Stack Overflow用户

发布于 2013-03-30 19:38:11

为了继续使用VS2010中的数据库,我最终删除了database.ldf日志文件,并将新的database_log.ldf文件重命名为原来的database.ldf名称。它不优雅或不正确,但它适用于开发。

这并没有解决codefirst创建一个版本的日志文件,而服务器资源管理器在同一VS2010环境中的开发过程的不同阶段创建另一个不同命名的日志文件的错误行为。

票数 0
EN

Stack Overflow用户

发布于 2013-08-10 22:53:36

我在使用VS2010 Express和SServer 2012 Express时遇到了完全相同的问题。我正在尝试阅读Julie Lerman的书Programming Entity Framework第二版。

没有比重命名日志文件更好的解决方案了吗?我试图重命名这些文件,但Windows会告诉我该文件正在使用中,即使我同时关闭了VS和SSMS。Process Explorer搜索数据库告诉我,SServer正在使用该文件。

我发现,我所要做的就是尝试使用DB连接向导创建一个连接字符串,SServer中的DB将获得创建的“额外”日志文件,我得到的消息与您看到的消息相同。

这是VS2010Ex中的错误吗?有可用的补丁吗?我们如何防止VS2010破坏数据库?

下面是在创建DB之后,但在尝试从VS执行任何操作之前的目录:

代码语言:javascript
复制
E:\Program Files (x86)\Microsoft SQL Server\MSSQL11.SAMPLES\MSSQL\DATA>dir programmingefdb2*
 Volume in drive E is JET20110708-1
 Volume Serial Number is EA22-1F7C

 Directory of E:\Program Files (x86)\Microsoft SQL Server\MSSQL11.SAMPLES\MSSQL\DATA

 08/09/2013 11:39 AM 10,485,760 PROGRAMMINGEFDB2_Data.mdf
 08/09/2013 11:39 AM 1,310,720 PROGRAMMINGEFDB2_Log.ldf
 2 File(s) 11,796,480 bytes
 0 Dir(s) 250,238,443,520 bytes free

以下是在VS项目中建立连接后的目录,但甚至没有尝试运行更新代码(并且没有将DB复制到项目中):

代码语言:javascript
复制
E:\Program Files (x86)\Microsoft SQL Server\MSSQL11.SAMPLES\MSSQL\DATA>dir programmingefdb2*
 Volume in drive E is JET20110708-1
 Volume Serial Number is EA22-1F7C

 Directory of E:\Program Files (x86)\Microsoft SQL Server\MSSQL11.SAMPLES\MSSQL\DATA

 08/09/2013 11:51 AM 10,485,760 PROGRAMMINGEFDB2_Data.mdf
08/09/2013 11:51 AM 516,096 PROGRAMMINGEFDB2_Data_log.ldf
 08/09/2013 11:39 AM 1,310,720 PROGRAMMINGEFDB2_Log.ldf
 3 File(s) 12,312,576 bytes
 0 Dir(s) 250,237,927,424 bytes free
票数 0
EN

Stack Overflow用户

发布于 2013-08-23 08:05:56

对于任何阅读这篇文章的人,特别是对作者来说,我在MS SQL Server论坛上找到了解决方案。这就是答案:

Visual Studio corrupting SQL Server logfile

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15696928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档