3.EF6とSqlServer Compact4.0の既存DBでコードファースト

Visual Studio Community 2019 を使用して、C#でコンソールアプリを作成し、NuGetパッケージマネージャーからEntityFramework 6 を追加していきます。(Visual Studio Community 2019のセットアップについては省略します。)

また、事前に Visual Studio Community 2019 に「SQLite/SQL Server Compact Toolbox」をセットアップしておく必要があります。詳細は、SQLite/SQL Server Compact Toolboxをインストールする を参照してください。

 

1.Visual Studio Community 2019 を起動して 「C#のWindowsコンソールアプリケーション(.NET Framework)」のプロジェクトを作成します。

2.メニュー「ツール(T)」-「NuGet パッケージ マネージャー(N)」-「ソリューションのNuGetパッケージの管理(N)…」を選択します。

3.左上の「参照」をクリックして、検索欄に「entityframework」と入力して検索を行い、検索結果の中から「EntityFramework」を選択して、現在のプロジェクトにインストールします。

4.下画面で「OK」をクリックします。

5.下画面で「同意する」をクリックします。

6.続いて、検索結果の中から「EntityFramework.SqlServerCompact」を選択して、現在のプロジェクトにインストールします。

7.下画面で「OK」をクリックします。

8.下画面で「同意する」をクリックします。

9.参照にEntityFrameworkが追加されます。

10.このプロジェクトへ新しい項目を追加します。

「ADO.NET Entiry Data Model」を選択して、「追加」をクリックします。

「データベースから Code First」を選択して、「次へ」をクリックします。

「新しい接続」をクリックします。

データソースが「SQL Server Compact 4.0 (Simple by ErikEJ) (SQL Server Compact 4.0 (Simple by ErikEJ))」になっていることを確認し(違っている場合は「変更(C)…」をクリックして変更します。)、「ソース」の「Data Source」にデータベースファイル(.sdfファイル)へのフルパスを入力します。(例では、C:\Users\agrim\source\repos\ConsoleApp29\ConsoleApp29\ひかりFAX電話CTIバックアップ.sdf です。)

念のため、「テスト接続」をクリックして成功するか見てみます。失敗する場合は、パスを見直してください。「OK」をクリックして「接続のプロパティ」を閉じます。

「次へ」をクリックします。

「テーブル」の前のチェックを付けて、すべてのテーブルをモデルに含めるようにします。「完了」をクリックします。

モデルが生成されます。

11.モデル(テーブル)がたくさんある場合、「Models」フォルダを作成し、その中へ移しましょう。

12.パッケージマネージャーコンソールを開いて、「Enable-Migrations」と入力してEnterキーを押下します。

すると、プロジェクト内に「Migrations」フォルダが作成され、中にConfiguration.cs ファイルが作成されます。

13.ファイル Configurations.cs を開いて、「AutomaticMigrationsEnabled」を false から true に変更して保存します。(自動マイグレーションの有効)

14.パッケージマネージャーコンソールを開いて、「Update-Database」と入力してEnterキーを押下します。

15.すると、「指定されたテーブルは既に存在します。 [ fax_rireki ]」という例外エラーが出てしまいました。

 

Update-Databaseコマンドで例外エラーが発生する へ続きます。