2017-05-28 4 views
1

「データベースファイルを開くことができません」私はSQLiteのエラー14:最初のEFコアコードで</p> <p>「データベースファイルを開くことができません」、ノーアイデア:EFコアコードの最初の

SQLiteのエラー14を取得していますなぜ。私は最初にうまくいきました。データベースファイルはc:¥users¥username¥AppData¥Local¥Packages¥PackageId¥LocalStateに作成されました。

次に、データベースファイルとコードの最初のマイグレーションクラスとModelSnapshotクラスを削除し、新しいマイグレーションを作成しました。(私はDbContext.Database.Migrate()を呼び出して、自動的にそれらを実行します)。これで、データベースを再度作成することはできません。

答えて

0

解決済み

  1. "すべての例外を無効にする"(例外設定ウィンドウで)を有効にすると、「データベースファイルを開くことができません」という例外が発生しました。

  2. エンティティクラスの[Table( "TableName")]属性を削除すると、移行クラスで奇妙なテーブル作成動作が発生しました。クラス名以外の名前のテーブルを作成するために必要な属性だと思っていました。

+0

私は#2はそれに関連していないと信じています。それは問題でもなく、エラーでもありません。データベースを削除しました。 Migrate(またはEnsureCreated)を呼び出すと、EFはデータベースがすでに存在するかどうかを判断する必要があります(存在しない場合はデータベースを作成できます)。 EFはデータベースに接続することでそれを行います。成功した場合はデータベースが存在し、失敗した場合は存在しません。すべての例外を壊してしまったため、データベースに接続しているときに例外が発生したときにコードが破損しました。実行を続けると、EFは例外をキャッチしてデータベースを作成します。 – Smit

関連する問題