1
如果數據庫不存在,我想創建數據庫。我使用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>());
}
}
我已經在app.config
有connectionString
:
<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
。你能幫助我嗎?
你想在Ef核心或實體框架6? –
我有同樣的問題。即使我重寫InitializeDatabase並做一個手動的Database.Create(),當我知道它不存在。 @Dawvawd:你有沒有解決過這個問題? – cmxl