1
データベースが存在しない場合は作成します。私はsqlite
をデータベースソースとして使用し、Entity Framework
を使用しています。最初は新しいモデル(コードを最初に)を追加し、現在のディレクトリにdatabase.db
というデータベースソースを設定しました。私はすでにapp.config
でconnectionString
を持っていたデータベースが存在しない場合は作成
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>());
}
}
:
class User {
public int Id { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
そしてもちろん、データベースコンテキストの:
次に、私は単純なクラスを追加しました
<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