我想创建数据库,如果它不存在。我使用sqlite
作为数据库源和Entity Framework
。首先,我添加了新模型(代码优先),并在当前目录中将数据库源设置为database.db
。
接下来,我添加了简单的课程:
class User {
public int Id { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
当然还有数据库上下文:
class TestContext : DbContext {
public DbSet<User> Users { get; set; }
public TestContext() :base("TestModel"){
//Create database always, even If exists
Database.SetInitializer<TestContext>(new DropCreateDatabaseAlways<TestContext>());
}
}
我connectionString
已经app.config
:
<connectionStrings>
<add name="TestModel" connectionString="data source="C:\Users\root\Documents\Visual Studio 2015\Projects\dbTEST\dbTEST\bin\Debug\database.db"" providerName="System.Data.SQLite.EF6" />
</connectionStrings>
在运行这段代码后出于某种原因:
using (var ctx = new TextContext()) {
ctx.Database.Create();
}
我收到错误:
An unhandled exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll
Additional information: Database 'main' cannot be created because it already exists.
我无法理解这有什么不对。我不知道main
数据库来自哪里。我将数据库文件设置为database.db
。你能帮帮我吗?
答案 0 :(得分:0)