2.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 モデル」を選択して、「完了」をクリックします。

11.プロジェクト内に「Model1.cs」が追加されるので、このサンプルソースの中のコメントを2か所外します。

12.ソース(program.cs)を以下のように変更します。

13.SQLite/SQL Server Compact Toolbox を使って、SQL Server Compact 4.0 の空のデータベースを作成します。

「Create…」をクリックします。

プロジェクト内に test.sdf を保存します。

「ConnectString:」の「Data Source=C:\~~~」の内容を後から使うのでコピーしてから、「OK」をクリックします。(※例の場合、コピーする文字列は、Data Source=C:\Users\agrim\source\repos\ConsoleApp29\ConsoleApp29\test.sdf です。)

test.sdf が作成されます。

14.プロジェクトの App.config を開いて、Model1 の connectionString をSQL Server Compact 4.0 の空のデータベースに変更します。

先程、コピーした「Data Source=C:\~~~」の内容をconnectString=” のところへ貼り付けます。

同じ行の後ろの providerName=” のところも以下のように変更します。

providerName=”System.Data.SqlServerCe.4.0″

15.実行すると、コマンドプロンプトが起動して、しばらくするとプログラムが終了します。

16.SQLite/SQL Server Compact Toolbox で見ると、データベースの中に、テーブルとデータが自動的に追加されています。

また、データベースには「dbo.__MigrationHistory」というテーブルも一緒に作成されています。(このテーブルは Migration(移行)処理に必要なものです。)

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

すると、プロジェクト内に「Migrations」フォルダが作成され、中にConfiguration.cs ファイルと、「201906120251260_InitialCreate.cs」というような名前のファイルが作成されます。

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

19.ソース Model1.cs を開いて、MyEntityクラスに「Addr」という項目を追加して保存します。

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

21.SQL Server オブジェクトエクスプローラーで見ると、列に「Addr」が自動的に追加されています。