使用Entity Framework 6创建数据库文件的问题

时间:2018-02-24 04:33:51

标签: c# wpf sqlite entity-framework-6

我有一个问题,我似乎无法找到解决方案,到目前为止,所有内容似乎都指向一个SQL Server,并且我发现很少的示例或解决方案处理文件本身的实际创建。

我创建了一个数据库,我一直用于测试目的,使用代码优先方法,我使用VS从数据库创建模型。在我的测试中,我知道想要使用不存在的文件进行测试,并让应用程序创建数据库文件。

在我的app.config中我有以下

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v13.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
      <connectionStrings>
  <add name="MyDbConnectionString" connectionString="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\Database\Test.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>

我有一个名为MyDbContext的文件,我尝试过一些无用的文件。

        public MyDBContext() : base("name=MyDbConnectionString")
        {

            Database.SetInitializer<MyDBContext>(new CreateDatabaseIfNotExists<MyDBContext>());
            //using (var context = new MyDBContext())
            //{
            //    context.Database.Initialize(force: true);
            //}
        }
        public virtual DbSet<ACCOUNTLIST_V1> ACCOUNTLIST_V1 { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
        }
    }
}

当然,我的模型非常简单,如果我手动使用SQL Server对象资源管理器来创建数据库,它就可以工作。但是,一旦我删除数据库和连接字符串并尝试让应用程序创建数据库,它实际上会失败并显示一条消息,说明数据库文件Test.mdb不存在。

我现在无法理解我现在缺少的那一步。

0 个答案:

没有答案