質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

ADO.NET Entity Framework

ADO.NET Entity Framework は、.NET FrameworkのためのObject-Relational-Mapping (ORM)ツールのセットです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

2回答

2411閲覧

ado.net entity data modelを作成しようとしたとき、postgresqlが選択できない問題について

hanpen369

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

ADO.NET Entity Framework

ADO.NET Entity Framework は、.NET FrameworkのためのObject-Relational-Mapping (ORM)ツールのセットです。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2022/07/15 12:57

VisualStudio2019で、WEBアプリケーションを作りたいと考えております。
ado.net entity data modelでpostgrsqlからデータベースファーストのモデルを作成しようと試みましたが、そもそもデータプロバイダーでpostgrsplを選択できません。
nugetにnpgspl を入れましたが、出来ませんでした。

ado.net entity data modelでpostgrsqlを選択できるようにするにはどうしたら解決できるでしょうか?

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/07/15 13:03

postgresql entity framework でググってみるぐらいのことはしたのでしょうか?
hanpen369

2022/07/15 13:41

はい。調べてみて、いろいろ参考にしましたが出来ませんでした。
退会済みユーザー

退会済みユーザー

2022/07/15 14:21 編集

postgresql entity framework でググると最初にヒットする記事が下記ですか、これは見ましたか? 【C#】Entity Framework Coreを使ってPostgreSQLを操作する https://hirahira.blog/efcore-postgresql/ Web アプリではなく、また Code First ですが、まずはこれでやってみてはいかが?
退会済みユーザー

退会済みユーザー

2022/07/15 14:35

最初に聞くべきだったですが、.NET Framework なのか .NET Core/.NET のどっちですか? そのバージョンは?
hanpen369

2022/07/15 14:51

参考のURLありがとうございました。参考にいたします。 .NETFramework4.7.1で作成しています。
退会済みユーザー

退会済みユーザー

2022/07/15 21:10

> .NETFramework4.7.1で作成しています。 ASP.NET Core だと思い込んでました。上に紹介した記事は ASP.NET Core のものですので忘れてください。すみません。
hanpen369

2022/07/15 23:56

こちらこそ質問に明記しておらず申し訳ございません。
退会済みユーザー

退会済みユーザー

2022/07/16 23:30

参考にされている記事に「サーバーエクスプローラーからPostgreSQLに接続するためNpgsql PostgreSQL Integration をVisual Studio 2019 Communityにインストール」とありますが、それはやりましたか?
退会済みユーザー

退会済みユーザー

2022/07/17 00:41

Npgsql PostgreSQL Integration https://marketplace.visualstudio.com/items?itemName=RojanskyS.NpgsqlPostgreSQLIntegration The Npgsql PostgreSQL Integration extension adds PostgreSQL integration right inside Visual Studio. With this extension, you can: - Connect to PostgreSQL from Server Explorer - Browse tables, views, columns and constraints - Retrieve table data and construct queries via UI - Create an Entity Framework 6 model from an existing database ・・・ということだそうですので、これなしでは Visual Studio で ADO.NET Entity Data Model は作れないようです。
退会済みユーザー

退会済みユーザー

2022/07/20 08:03

Visual Studio Community 2022 17.2.6 + Npgsql PostgreSQL Integration 4.1.12 で試してみました。コンソールアプリなら問題なく EDM は作成できましたが、.NET Framework の ASP.NET MVC5 プロジェクトでは、ADO.NET Entity Data Model ウィザードの最初の画面は表示されるものの、そこから先に進めず最初の項目の選択の画面に戻ってしまいます。何かがバッティングしているような感じで、解決策が見つかりません。 .NET 6.0 の ASP.NET Core MVC アプリであれば DB ファースト、コードファーストいずれも問題ないのは確認しました。 Npgsql PostgreSQL Integration のバージョンアップで解決されるかもしれませんが、.NET Framework ベースにはあまり力が入ってないような感じで、どうしても .NET Framework ベースでなければならないということでなければ、.NET 6.0 の ASP.NET Core MVC の方向に進んだ方が良さそうな気がします。
退会済みユーザー

退会済みユーザー

2022/07/20 09:58

どうしても .NET Framework ベースでなければならないということなら、ソリューション内に別プロジェクトでクラスライブラリを作り、その中に EDM を作るという手があります。明日それを回答として書きます。
退会済みユーザー

退会済みユーザー

2022/07/25 01:00

質問者さん、無言ですが、回答したのでそれに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。解決したなら解決に役立った回答にベストアンサーをつけてクローズしてください。とにかく無言は NG です。
退会済みユーザー

退会済みユーザー

2022/08/16 03:08

いつまでも放置しておかないでクローズしてください。
guest

回答2

0

以下の環境で試してみました。

  • PostgreSQL 14.4
  • Visual Studio Community 2022 17.2.6
  • Npgsql PostgreSQL Integration 4.1.12
  • Entityframework6.Npgsql 6.4.3
  • Npgsql 6.0.5
  • .NET Framework 4.8
  • ASP.NET MVC 5.2.7 (VS2022 のテンプレートで作成)

すべて現時点での最新版です。質問者さんのものとは違いますが、同じ環境にはできないのでご了承ください。

ASP.NET MVC プロジェクトでは、Entityframework6.Npgsql 6.4.3, Npgsql 6.0.5 をインストールした後では、「新しい項目の追加」メニューで ADO.NET Entity Data Model を選んで「Entity Data Model ウィザード」画面は表示されるものの、そこから先に進もうとすると何故か「新しい項目の追加」メニュー画面に戻ってしまいます 。何が原因か不明で今のところ解決策は見つけることができていません。(Entityframework6.Npgsql 6.4.3, Npgsql 6.0.5 をインストールしないとデータソースのメニューの中には PostgreSQL Database は現れません)

なので、同じソリューション内に別プロジェクトでクラスライブラリを追加し、Entityframework6.Npgsql 6.4.3, Npgsql 6.0.5 をインストールし、ウィザードでクラスライブラリの中に EDM を作ってみました。

その際、Visual Studio を一旦閉じて再度立ち上げないとウィザードが動かないという不可解な動きはありましたが、[データベースから EF Designer]を選択して[次へ(N) >]をクリックして先に進めることができました。(注: 質問者さんが参考にしたサイトでは[データベースから Code First]を選択していましたが、それは正しくないです)

イメージ説明

データソースのメニューの中には PostgreSQL Database も表示され、それを選んで先に進めれば PostgreSQL 用の EDM は生成されました。下の画像の PostgresMovie.edmx というのがそれです。

イメージ説明

EDM が完成したらクラスライブラリを ASP.NET MVC5 プロジェクトの参照に追加し、クラスライブラリの App.config に生成された接続文字列を MVC アプリの web.congfig にコピーし、リビルドしてからスキャフォールディング操作で CRUD 用の Controller/View を一式生成できます。

イメージ説明

実行結果は以下のようになります。

イメージ説明

ただ、いろいろ不可解な動きがありました。上にも書きましたが、クラスライブラリで EDM を作った時 Visual Studio を一旦閉じて再度立ち上げないとウィザードが動かなかったこと、さらに不可解なのは、以上の操作が完了した後なら ASP.NET MVC5 プロジェクトでも「Entity Data Model ウィザード」画面から先に進めるようになったということです。

なぜそのような不可解な動きになるのか不明です。なので、どうしても .NET Framework ベースでなければならないということがなければ、そのような不可解な動きはない .NET 6.0 の ASP.NET Core MVC の方向に進むのがよさそうです。

投稿2022/07/21 03:09

編集2022/07/21 03:47
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

https://marketplace.visualstudio.com/items?itemName=RojanskyS.NpgsqlPostgreSQLIntegration&ssr=false#qna
QAに以下の記述があり、最新バージョン(4.1.12)の場合Visual Studio 2019に対応してないとやりとりされています。
version 4.1.12 を使われているのでしたら古いバージョンを入れてみてはいかがでしょうか?

New version(4.1.12) is not supported VS2019? I could not connect PostgreSQL in Visual Studio2019!!!
By Harry Smith 2022/07/05
This is being looked at - in the meantime continue using the previous version (the only change in the new version is VS2022 support)
By RojanskyS 2022/07/07

投稿2022/07/17 12:10

umed0025

総合スコア851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問