我有一个问题,我似乎无法找到解决方案,到目前为止,所有内容似乎都指向一个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不存在。
我现在无法理解我现在缺少的那一步。