🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Q&A

解決済

3回答

4686閲覧

EntityFrameworkのDbContextクラス

yamaguchi0714

総合スコア12

C#

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

0グッド

0クリップ

投稿2021/03/17 00:31

ご存知の方がいらっしゃいましたらご教授いただきたくお願いいたします。

Microsoft Visual Studio Community 2019にてプロジェクトを作成し、
EntityFrameworkを勉強したいと思っておりますが『DbContextクラス』を作成途中で
エラーが発生してしまいました。

①プロジェクトの作成
C#コンソールアプリケーションを選択→ターゲットフレームワーク『.NET5.0』を選択

プロジェクトタブの新しい項目追加を選択 →一覧から「ADO.NET Entity Data Model」を選択→以下エラーが表示される

イメージ説明

参考にしているサイト
リンク内容

お詳しい方がいらっしゃいましたら何卒よろしくお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/03/17 01:53

質問者さん、自分の回答を削除した後無言ですが、結局どのようにしたいのか書いてください。最初に学んでいた EF4 で続けたい? EF6 に乗り換えたい? EF Core に乗り換えたい?
yamaguchi0714

2021/03/18 07:47

投稿が遅れ大変も申し訳ございません。 自分なりに勉強しておりました。 Coreと.Net Frameworkの違いも分かっていませんでした。 なんとか以下手順でデータを登録するまで理解できました。 ①新しいプロジェクトで【コンソールアプリ(.NET Framework)】を選択 ②プロジェクトを右クリックし、追加→新しい項目を選択する。 投稿が遅れ大変も申し訳ございません。 自分なりに勉強しておりました。 Coreと.Net Frameworkの違いも分かっていませんでした。 なんとか以下手順でデータを登録するまで理解できました。 参考にしたサイト:https://www.atmarkit.co.jp/fdotnet/ef4basic/index/ IDEはVisual Studio Community 2019を使用。 ①新しいプロジェクトで【コンソールアプリ(.NET Framework)】を選択 ②プロジェクトを右クリックし、追加→新しい項目を選択する。 ③一覧から【ADO.NET Entity Data Model】を選択 ④空のEF Designerを選択 ⑤テーブルをデザイン後、【モデルからデータベースを生成】 ⑥以下ロジックを実行プログラムとし実行。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration; namespace AdressBook { class Program { static void Main(string[] args) { var container = new AdressBookContainer(); var entry = new Entry() { Name = "Doi", Age = 30, TelNo = "03-0000-0000", MailAddress = "doi@hogehoge.com" }; container.Entries.Add(entry); container.SaveChanges(); var entries = from e in container.Entries select e; foreach (var e in entries) { Console.WriteLine(string.Format("{0} {1}歳 電話番号:{2}", e.Name, e.Age, e.TelNo)); } } } } コードファーストも勉強します。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2021/03/18 08:55

> 参考にしたサイト:https://www.atmarkit.co.jp/fdotnet/ef4basic/index/ そのサイトの記事は EF4 ベースですよ。分かってやっていて、EF4 で良いということであればこちらも何も言うことはないですけど。 何にせよ解決したようですので、ベストアンサーを付けてスレッドをクローズしてください。
guest

回答3

0

そのサイトを参考に勉強中という事ですので
出来るだけ参考サイトとバージョンを合わせた方が良いですよ

Visual Studioのバージョンは良いとして(たまに出来ない事が出てきますが。
.net Framework 4.5.2
EntityFramework 6.2.0
を使用して、サイト通りに進めてみて下さい。

何となく動かせるようになり、何となくEFのコードがわかるようになってから
.net 5/EF Coreに移行してはいかがでしょうか

ネット上でも情報は新旧混在していますし
.net 5で、EF Coreというとさらに情報が少なそうな気もしますし

確か、EDMの「空のCode Firstモデル」って、
DbContextを自動生成してくれるだけだったような気がしますので
DbContextの作り方を別途調べてみても

投稿2021/03/17 01:29

sinya0320

総合スコア211

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

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

退会済みユーザー

退会済みユーザー

2021/03/17 01:39 編集

参考サイト(質問者さんが回答に書いて消した方のことです)とバージョンを合わせるということですと EF4 になるのですが? 今更 EF4 で勉強するのもなんなので EF6 をお勧めするという話なら分かりますけど・・・
sinya0320

2021/03/17 01:42

参考サイトに 環境 OS : Windows 10 Pro (バージョン:1709) IDE : Visual Studio Community 2015 Update3 DB : Microsoft SQL Server Express LocalDB .NET Framework 4.5.2 EntityFramework 6.2.0 と記載があったので、.netFW 4.5.2は少し古い気がするけど、EF6.2なら良いか。と思いました。
sinya0320

2021/03/17 01:44

あ、すみません。ちゃんと読んでいなかった。 消した方のサイトがあったのですね。 そっちは見る前に消えてしまったようで、見ていませんでした。
退会済みユーザー

退会済みユーザー

2021/03/17 01:49

消した方のチュートリアルはかなり古くて EF4 ですが、それで勉強していてあるところでうまくいかなくなって別の記事(最初の質問にあるもの)に乗り換えようとして、そこで VS2019 で Core 版のコンソールアプリを選んでうまくいかないというのが現状のようです。結局どのようにしたいのかは質問者さんが自分の回答を削除した後無言なので不明です。
yamaguchi0714

2021/03/18 07:48

ご連絡が遅れ申し訳ありません。 コンソールアプリでモデルから生成する方法については理解できてきました。 ソースから生成について勉強いたします。 ありがとうございました。
guest

0

記入誤りのため削除

投稿2021/03/17 01:16

編集2021/03/17 01:25
yamaguchi0714

総合スコア12

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

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

退会済みユーザー

退会済みユーザー

2021/03/17 01:21 編集

質問者は回答欄に書かないでください。回答欄に書かれると何が何だか分からなくなるし、ここ Teratail ではそれが流儀のようです。私の回答に対するコメントは私の回答の下のコメント欄に書いてください。 この回答は削除してください。
guest

0

ベストアンサー

 C#コンソールアプリケーションを選択→ターゲットフレームワーク『.NET5.0』を選択

.NET Framework 版を選択してください。Core では「ADO.NET Entity Data Model」から EDM を作るのはサポートされていません。

【追記】

どうしても Core でなければならなくて、既存の DB からコンテキストクラスとエンティティクラスを作って使いたいということであれば、リバースエンジニアリンクという方法を使います。

詳しくは以下の記事の「(1) リバースエンジニアリング」を見てください。

スキャフォールディング機能 (CORE)
http://surferonwww.info/BlogEngine/post/2020/03/16/create-controller-and-view-in-aspnet-core-mvc-using-scaffolding.aspx

【追記2】

今更ながらですが、参考にしているサイトを見たら EF Code First の話のようですね? それに ADO.NET Entity Data Model というのは話が変なのですが、一体何がしたいのですか?

投稿2021/03/17 00:46

編集2021/03/17 00:56
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問