前提条件としてソフトはインストール済み、データベース、テーブルはすでにあるものとして話を進める。
Microsoft Visual Studio Community 2019
SQL Server 2019 Express
この記事では以下の構成のDBを使用して説明する。
プロジェクトの新規作成
「新しいプロジェクトの作成」を選択する。
「新しいプロジェクトの作成」を選択する。
「新しいプロジェクトの構成」で以下の項目を入力する。
プロジェクト名:「MyWebApp」
場所:「C:\Source\」
※ソリューションルートフォルダが「C:\Source\MyWebApp」となる。
ソリューションとプロジェクトを同じディレクトリに配置する:有効
プロジェクト名:「MyWebApp」
場所:「C:\Source\」
※ソリューションルートフォルダが「C:\Source\MyWebApp」となる。
ソリューションとプロジェクトを同じディレクトリに配置する:有効
「Webアプリケーション(モデル ビュー コントローラー)」を選ぶ。
プロジェクトの作成が終わり、
「ソリューションエクスプローラー」を開くとファイルの状態が確認できる。
プロジェクトへのパッケージ追加
メニューバー>プロジェクト>NuGetパッケージの管理を選択する。「NuGetパッケージマネージャー」が開く。
「参照」を選び、キーワード入力欄の検索を使って次の3つを探し、画面の指示通りにそれぞれインストールする。
メニューバー>プロジェクト>NuGetパッケージの管理を選択する。「NuGetパッケージマネージャー」が開く。
「参照」を選び、キーワード入力欄の検索を使って次の3つを探し、画面の指示通りにそれぞれインストールする。
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
「NuGetパッケージマネージャー」を閉じる。
「ソリューションエクスプローラー」を開くと追加パッケージの状態が確認できる。
メニューバー>ファイル>すべて保存(または、すべてを保存ボタンを押下し)を選択し、ソリューションを保存する。
「ソリューションエクスプローラー」を開くと追加パッケージの状態が確認できる。
メニューバー>ファイル>すべて保存(または、すべてを保存ボタンを押下し)を選択し、ソリューションを保存する。
スキャフォールディングで DbContext を生成する
メニューバー>表示>その他のウィンドウ>パッケージマネージャコンソールを選択する。
「パッケージマネージャコンソール」ウィンドウが開く。
次のコマンドを張り付ける(※文字列部分は各SQLサーバーの環境ごとに書き換える)。
メニューバー>表示>その他のウィンドウ>パッケージマネージャコンソールを選択する。
「パッケージマネージャコンソール」ウィンドウが開く。
次のコマンドを張り付ける(※文字列部分は各SQLサーバーの環境ごとに書き換える)。
Scaffold-DbContext "Data Source=localhost\SQLEXPRESS;Initial Catalog=MyTestDB;User ID=****;Password=****" Microsoft.EntityFrameworkCore.SqlServer -Tables "UserTable","DivisionTable" -ContextDir DbContexts -OutputDir "DbContexts/Entities" -Force
オプションの補足説明
-Force 既存のファイル上書き
-Tablesテーブル名を指定。"TableA","TableB",...で複数指定可能。省略すると全テーブルに対して操作する。
-Context DBコンテキストのクラス名を指定すると、任意のDBコンテキストのクラス名を指定可能。省略するとDB名から自動生成。
成功すると、以下のように表示される。
「ソリューションエクスプローラー」から追加されたファイルが確認できる。
先ほどと同じく、一旦すべてのファイルを保存する。
DBの接続情報を追記する
■MyTestDBContext.csを編集する。
OnConfiguringメソッド内の接続情報は不要なので削除する。
■MyTestDBContext.csを編集する。
OnConfiguringメソッド内の接続情報は不要なので削除する。
■appsettings.jsonを編集する。
次の様に、接続情報を追加する。
次の様に、接続情報を追加する。
キー名は任意。今回はDB名と同一。
"ConnectionStrings": {
"MyTestDB": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=MyTestDB;User ID=****;Password=****"
}
■Startup.csを編集する。
ファイル冒頭に参照を追加する。
ファイル冒頭に参照を追加する。
using Microsoft.EntityFrameworkCore;
using MyWebApp.DbContexts;
ConfigureServicesメソッドに、以下のコードを張り付ける。 キー名はappsettings.jsonで指定したものに書き換える。
services.AddDbContext<MyTestDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MyTestDB")));
ここまででDB接続の下準備は終わりです。
コントローラ、ビューを編集する
ここからは各コントローラ、ビューを編集し、DBからデータを取得、表示します。
ここからは各コントローラ、ビューを編集し、DBからデータを取得、表示します。
■Controllers\HomeController.csを編集する。
ファイル冒頭に参照を追加する。
ファイル冒頭に参照を追加する。
using MyWebApp.DbContexts;_context変数の宣言をする。
また、既存のコンストラクタに引数を追加し、コンテキストを受け取るようにする。
これにより、このコントローラ内では_contextを使用してDBへアクセスできるようになる。
編集後のコードは次の様になる。
private readonly ILogger<HomeController> _logger;
private readonly MyTestDBContext _context; // 追加
public HomeController(ILogger<HomeController> logger, MyTestDBContext context /*追加*/)
{
_logger = logger;
_context = context; // 追加
}
Indexアクションを編集する。
次のコードを追加し、UserTableからデータを取得する。
var item = _context.UserTable.FirstOrDefault();
if (item != null)
{
ViewBag.mydata = item.Name;
}
■Views\Home\Index.cshtmlを編集する。
Indexアクションを次の様に書き換え、データを表示する。
Indexアクションを次の様に書き換え、データを表示する。
<h1>こんにちは@(ViewBag.mydata)さん</h1>
デバッグ実行
ブラウザでデータの取得・表示が確認できる。
参考サイト
https://docs.microsoft.com/ja-jp/ef/core/miscellaneous/cli/powershell
https://docs.microsoft.com/ja-jp/ef/core/miscellaneous/connection-strings
https://docs.microsoft.com/ja-jp/ef/core/miscellaneous/configuring-dbcontext
https://docs.microsoft.com/ja-jp/ef/core/miscellaneous/connection-strings
https://docs.microsoft.com/ja-jp/ef/core/miscellaneous/configuring-dbcontext
d2cb57a1dd quinfort
https://diamondhairs.com.ua/rynok-forex/
https://diamondhairs.com.ua/sotsialnye-seti/
https://diamondhairs.com.ua/the-beauty/
https://diamondhairs.com.ua/internet-marketing/
https://diamondhairs.com.ua/investirovanie/
http://blog.kuwajimaclinic.com/article/80326628.html
60a1537d4d heddros
https://colab.research.google.com/drive/17z6iO8B0qbZZ2igewT3ArJxaIk3EbZaR
https://colab.research.google.com/drive/19XTgSPNqwrG2bfV0K2jvfLiMT3N7bOu7
https://colab.research.google.com/drive/1_851MTCFRssTcx5o-oQq2H7keaKBhN3r
https://colab.research.google.com/drive/1YeemloorOwxmEnkEjaGwaQExJqhIYveJ
https://colab.research.google.com/drive/1A-KudxiYxk0JvL8gBSMXL2c9NTxBCld2
https://hamrahweb.net/portfolio/mihancharge/mihancharge-thumb-2/
60a1537d4d jamrey
https://colab.research.google.com/drive/1Mt9WKQcuwZxmx93vqYeXUxWCRAis19UT
https://colab.research.google.com/drive/1omz4QyChatpqm0q8HUejbdKpundOIYOa
https://colab.research.google.com/drive/1ZOd8dzVze-ZjDhJ6oPW_UFTKF-AixoLH
https://colab.research.google.com/drive/1dq7LfPsWduwjt0C6QEensr4V1NJUY5Bb
https://colab.research.google.com/drive/10iLC2SR5lqqqXLCGk-Y_Qtn5g6MIfMMD
https://coffeevendingmalaga.com/cafe-gratis/cocacola-2/
60a1537d4d evelkar
https://colab.research.google.com/drive/1rt6zgTbdUuFd745DuAyfC04O3LWh88o3
https://colab.research.google.com/drive/1RlpCbbu7Visv0xIOhAsd_OmE7OOGh5BX
https://colab.research.google.com/drive/1-G4d0DzdFhdLulXJ4YN6suf-ybThbz3q
https://colab.research.google.com/drive/16_51KQoHWcgHfDsq5nHT11CZWcDX7a-N
https://colab.research.google.com/drive/1xUHeX9a6elhHQeJS26Wo_flWDrofWk4W
https://www.fredjemeubelen.nl/laat-zien-dat-je-trots-bent-op-je-land-en-koop-een-vlag/
60a1537d4d sadyphi
https://colab.research.google.com/drive/1ocg8_7usGywa_bak_t2in1l_qF1hdXLC
https://colab.research.google.com/drive/1rDm-kx9HCle6K_TavjVK_n0Elvhc9yb0
https://colab.research.google.com/drive/1tpxtsDRD-xKMG-gc6CiBSiOCPS8oHRR1
https://colab.research.google.com/drive/19TUA9NHH12KPJZbKPF7ATxyePkSJknfb
https://colab.research.google.com/drive/1QyKzsBdiAEFUuO4I3XoBQW8vjvIXoeK-
http://www.3mbltm.com/shownews.asp?id=193
60a1537d4d sansmik
https://colab.research.google.com/drive/1u3xVTBivod25_1S5lo_DAC2XbyQe2aDk
https://colab.research.google.com/drive/18FJ-ry37WOpJTE4pyPEafIHSLEyZEy13
https://colab.research.google.com/drive/1nL_zKS6BJV-P24MFXdtdyOguyDeZIVx1
https://colab.research.google.com/drive/1XnYTbJykIB-TjsPNb2JAhEwTj-QimC8r
https://colab.research.google.com/drive/1GOseJTNwmU4G6NdT8NH3cxxS-W4Do1Vy
https://www.fredjemeubelen.nl/hoe-houd-je-het-beddengoed-mooi-en-fris/
60a1537d4d rowale
https://colab.research.google.com/drive/1bLIotc77CdxISZMLjBOz3vI5TaHlreZ_
https://colab.research.google.com/drive/1pei5m6YW1xcafUMqn7FXxhsbfMJv5qiP
https://colab.research.google.com/drive/1DP0DC9kRqs87tsKILI_s8EE9ThIVJ8Tu
https://colab.research.google.com/drive/1iddZALgnqQ29e2hej329EvAhAvdAFv7M
https://colab.research.google.com/drive/1wO7jJaS8bxx_PuPK_6tSxDqmW_su7ij6
https://portal.tlas.org.al/sq/buxheti?page=23#comment-2530301
https://imgur.com/WoIXZgR
https://imgur.com/t8E0aqg
https://imgur.com/hH5Gy2l
https://imgur.com/KwkY3ko
https://imgur.com/QnohGHT
https://imgur.com/Wyg9ncQ
https://imgur.com/MJAJ6ku
https://imgur.com/W7DKg62
https://imgur.com/8AktXbn
https://imgur.com/RYErcHN
https://imgur.com/ZNW9FN2
https://imgur.com/DX6FHQm
https://imgur.com/YzLmndN
https://imgur.com/lSFVnIV
https://imgur.com/N5c1Vu3
https://imgur.com/82MGNTn
https://imgur.com/lS1HCy1
https://imgur.com/qZ3WvuB
https://imgur.com/dxVlBAn
https://imgur.com/3PGJEU0
https://imgur.com/cuyav0Y
https://imgur.com/EGrTLz6
https://imgur.com/QRK3l5W
https://imgur.com/4nPJEkG
https://imgur.com/77DXad1
https://imgur.com/Nc3D9nA
https://imgur.com/pnwkCF5
https://imgur.com/sr0p4ln
https://imgur.com/Ye1fBzt
https://imgur.com/MezlyJK
https://imgur.com/TABLFd3
https://imgur.com/RinWu1e
https://imgur.com/EzEerck
https://imgur.com/gFB22qx
https://imgur.com/N8zp9jm
https://imgur.com/jYgWsxP
https://imgur.com/i67kDZW
https://imgur.com/Xn7zf1k
https://imgur.com/z9ofHR6
https://imgur.com/2hypkw6
https://imgur.com/8l0T00j
https://imgur.com/TeixFd5
https://imgur.com/uaNoYYx
https://imgur.com/j5JGs8t
https://imgur.com/YhSfXzB
https://imgur.com/2UrmMpu
https://imgur.com/WAqDVuN
https://imgur.com/PdQIPyC
https://imgur.com/gJjAAdZ
https://imgur.com/6fAIJnC
https://imgur.com/9MKGfjU
https://imgur.com/sVvNuDK
https://imgur.com/ptuEuia
https://imgur.com/JbALUBc
https://imgur.com/PhGhkJF
https://imgur.com/rIoOo2s
https://imgur.com/F3AYNZj
https://imgur.com/ZMvv4M1
https://imgur.com/TUGbStC
https://imgur.com/ybXqypU
https://imgur.com/jeFYQOK
https://imgur.com/XZEL4dp