ASP.NET MVC5 とPostgresqlでWebアプリケーションを作成する

はじめに

WebアプリケーションをASP.NET MVC5とPostgresqlで作成します。

前提

  • Windows10
  • PostgreSQL 10.10
  • VisualStudio 2019 Version 4.8.03752
  • .NET Framework 4.7.2
  • EntityFramework 6.2.0
  • Npgsql 4.1.2

以下の記事を参考にして、Webアプリケーションのプロジェクトを作成します。
wanouri.hatenablog.com

以下の記事を参考にして、PostgreSQL環境を構築しテーブルを作成します。
wanouri.hatenablog.com
wanouri.hatenablog.com
wanouri.hatenablog.com
wanouri.hatenablog.com

EntityFramework6.Npgsqlをインストールする

  1. ソリューションエクスプローラで、プロジェクトを右クリックします。
  2. NuGetパッケージの管理をクリックします。
  3. EntityFramework6.Npgsql をインストールしてください。
  4. EntityFramework も上記インストールと同時にインストールされます。

f:id:wanouri:20190824222043p:plain
EntityFramework6.Npgsql をインストール

Npgsql PostgreSQL Integrationをインストールする

Npgsql PostgreSQL Integrationをダウンロードしてインストールします。
marketplace.visualstudio.com

WebアプリケーションとPostgreSQLを接続する

  1. ソリューションエクスプローラーのModelsフォルダを選択して、右クリックします。
  2. 追加をクリックします。
  3. 新しい項目をクリックします。
  4. データをクリックします。
  5. ADO.NET Entity Data Modelをクリックします。
  6. 名前の欄に任意の文字列(Model1)を入力後、追加をクリックします。

f:id:wanouri:20190830152749p:plain
新しい項目の追加

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

f:id:wanouri:20190830153104p:plain
データベースからCode First

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

f:id:wanouri:20190830153320p:plain
Entity Data Modelウィザード

  • Host、Database、User name、Passwordを入力します

f:id:wanouri:20190830153504p:plain
接続のプロパティ

  • はい、重要情報を接続文字列に含めます。にチェックして、次へをクリックします。

f:id:wanouri:20190830153835p:plain
Entity Data Modelウィザード

  • テーブルにチェックを入れて、完了をクリックします。

f:id:wanouri:20190830154027p:plain
データベースオブジェクトと設定の選択

WebConfigを修正する。

  • Web.configファイルのconfigurationタグ内に以下の内容を追加します。
  <system.data>
    <DbProviderFactories>
      <remove invariant="Npgsql" />
      <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" support="FF" />
    </DbProviderFactories>
  </system.data>


スキャフォールディングを行いページを生成する。

  1. ソリューションのリビルドを行います。
  2. ソリューションエクスプローラーのModelsフォルダを選択して、右クリックします。
  3. 追加をクリックします。
  4. 新規スキャフォールディングアイテムをクリックします。

f:id:wanouri:20190830154219p:plain
スキャフォールディングを追加

  • モデルクラスにitemsを選択します。
  • データベースコンテキストにModel1を選択します。

f:id:wanouri:20190830154528p:plain
コントローラの追加

デバッグ実行

  • デバッグを開始して、URLの末尾にitemsと付加して更新します。(以下は例)
https://localhost:44335/items
  • テーブルの内容が表示されます。

f:id:wanouri:20190830155103p:plain
表示