演習 - EF Core で SQLite データベース プロバイダーを使用する

完了

この時点までは、メモリ内データベースにデータが保存されています。 このデータベースは、アプリケーションの開発中に簡単に設定して使用できますが、データは永続的ではありません。 その結果、アプリケーションの再起動時にデータが失われます。 アプリケーションを配置する前に、データをデータベースに永続化する必要があります。

この演習では、リレーショナル データベースを使用してデータを格納するようにアプリケーションをアップグレードします。 SQLite を使用してデータを格納します。

SQLite データベースを設定する

次のセクションを完了して、SQLite データベースを設定します。

次のツールとパッケージをインストールする

ターミナルで、次のパッケージをインストールします。

  1. SQLite EF Core データベース プロバイダー: データベース プロバイダーと呼ばれるプラグイン ライブラリを使用して、さまざまなデータベースにアクセスできます。 次のパッケージは、Entity Framework (EF) Core 用の SQLite データベース プロバイダーです。

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. EF Core ツール: EF Core 用のツールがデザイン時の開発タスクを実行します。 たとえば、既存のデータベースに基づいて、移行を作成し、移行を適用し、モデルのコードを生成します。

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: データベースを作成するための EF Core のデザイン時ロジックがすべて含まれています。

    dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
    

データベースの作成を有効にする

データベースの作成を有効にするには、データベース接続文字列を設定する必要があります。 その後、データ モデルを SQLite データベースに移行します。

  1. Program.cs で、var builder = WebApplication.CreateBuilder(args); の下に接続文字列を追加します。

    var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";
    

    このコードを使用すると、構成プロバイダーで Pizzas という名前の接続文字列がチェックされます。 見つからない場合は、接続文字列として Data Source=Pizzas.db が使用されます。 SQLite はこの文字列をファイルにマップします。

  2. このチュートリアルの CRUD 部分では、メモリ内データベースを使用しました。 ここでは、メモリ内データベースを永続的なデータベースに置き換えます。

    ビルド サービスの現在のメモリ内データベースの実装 builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items")); を、こちらの SQLite のものに置き換えます。

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. EF Core 移行ツールを使用すると、最初の移行 InitialCreate を生成できるようになります。 変更をすべて保存し、次のコマンドを実行します。

    dotnet ef migrations add InitialCreate
    

    EF Core によって、データベースの移行を表すコードを含む 2 つのファイルを含む、Migrations フォルダーがプロジェクト ディレクトリに作成されます。

  4. 移行が完了したので、それを使用してデータベースとスキーマを作成できます。

    ターミナル ウィンドウで、次の database update コマンドを実行して、データベースに移行を適用します。

    dotnet ef database update
    

    プロジェクト ディレクトリに新しく作成された Pizzas.db ファイルが表示されます。

アプリケーションの実行とテスト

これで、バッキング データベースが完成し、変更が永続化されるようになります。

dotnet run と Swagger UI を使用する前と同様に、お使いのアプリケーションをテストします。 Ctrl+C コマンドを使用して、アプリケーションを停止します。 次に、もう一度実行し、変更が Pizzas.db にまだ保持されていることを確認します。

おめでとうございます。 データベースがお使いの最小 API に接続されました。