日志文件与主文件不匹配。 _log.ldf和.ldf文件

时间:2012-07-12 16:48:03

标签: asp.net sql-server-2008 ef-code-first asp.net-mvc-4

我目前正在尝试将其他用户信息与MVC4中的成员资格提供程序一起存储在单个.mdf文件中。我一直在研究一个使用Code first的简单测试Mvc4应用程序和System.Web.Providers。 数据库有一个初始化程序,只要模型发生变化,它就会丢弃并创建数据库。但是每当我这样做时,我都会收到一个错误说明:

一个或多个文件与数据库的主文件不匹配。如果您尝试附加数据库,请使用正确的文件重试该操作。如果这是现有数据库,则该文件可能已损坏,应从备份中恢复。 无法打开登录请求的数据库“MyNewTest”。登录失败。 日志文件〜\ MvcTest.ldf'与主文件不匹配。它可能来自不同的数据库,或者以前可能已经重建过日志。

如果我查看App_Data文件夹,我现在有两个.ldf文件。 MvcTest.ldf和MvcTest_log.ldf。如果我将MvcTest_log.ldf重命名为MvcTest.ldf文件,一切都会再次运行。

在我的Web.Config文件中,我有这个

<add name="DefaultConnection" 
providerName="System.Data.SqlClient" 
connectionString="Data source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MvcTest.mdf;Initial Catalog=MvcTest;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True" />

我的Context.cs文件:

public class Context : DbContext
{
    public Context()
        : base("DefaultConnection")
    {
    }
    public DbSet<UserInformation> UserInformation { get; set; }
}

我的Initializer.cs文件:

public class Initializer : DropCreateDatabaseIfModelChanges<Context>
{
    protected override void  Seed(Context context)
    {
        base.Seed(context);
    }

}

一个模型文件:

public class UserInformation
{
    public int UserInformationId { get; set; }

    public Guid UserId { get; set; }
    public string callsign { get; set; }
}

我也想知道我是否会以错误的方式解决这个问题。我希望这些表一起使用的原因是强制执行约束条件。

0 个答案:

没有答案