2020年11月09日

.NET Core のWebアプリからスキャフォールディングで既存のDBへ接続する

前提条件としてソフトはインストール済み、データベース、テーブルはすでにあるものとして話を進める。

Microsoft Visual Studio Community 2019
SQL Server 2019 Express

この記事では以下の構成のDBを使用して説明する。
20201108_001_DB.png

プロジェクトの新規作成
「新しいプロジェクトの作成」を選択する。
20201108_001_ins_01.png

新しいプロジェクトの作成で「ASP.NET Core Webアプリケーション」を選択する。
20201108_001_ins_02.png

「新しいプロジェクトの構成」で以下の項目を入力する。
プロジェクト名:「MyWebApp」
場所:「C:\Source\」
  ※ソリューションルートフォルダが「C:\Source\MyWebApp」となる。
ソリューションとプロジェクトを同じディレクトリに配置する:有効
20201108_001_ins_03.png

「Webアプリケーション(モデル ビュー コントローラー)」を選ぶ。
20201108_001_ins_04.png

プロジェクトの作成が終わり、
「ソリューションエクスプローラー」を開くとファイルの状態が確認できる。
20201108_001_ins_06_files.png

プロジェクトへのパッケージ追加
メニューバー>プロジェクト>NuGetパッケージの管理を選択する。「NuGetパッケージマネージャー」が開く。
「参照」を選び、キーワード入力欄の検索を使って次の3つを探し、画面の指示通りにそれぞれインストールする。
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
20201108_002_pkg_01.png

「NuGetパッケージマネージャー」を閉じる。
「ソリューションエクスプローラー」を開くと追加パッケージの状態が確認できる。
メニューバー>ファイル>すべて保存(または、すべてを保存ボタンを押下し)を選択し、ソリューションを保存する。
20201108_002_pkg_02.png

スキャフォールディングで DbContext を生成する
メニューバー>表示>その他のウィンドウ>パッケージマネージャコンソールを選択する。
「パッケージマネージャコンソール」ウィンドウが開く。
次のコマンドを張り付ける(※文字列部分は各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名から自動生成。
成功すると、以下のように表示される。
20201108_003_scf_01.png

「ソリューションエクスプローラー」から追加されたファイルが確認できる。
20201108_003_scf_02.png
先ほどと同じく、一旦すべてのファイルを保存する。

DBの接続情報を追記する
■MyTestDBContext.csを編集する。
OnConfiguringメソッド内の接続情報は不要なので削除する。
20201108_004_code_01.png

■appsettings.jsonを編集する。
次の様に、接続情報を追加する。
キー名は任意。今回はDB名と同一。
"ConnectionStrings": {
"MyTestDB": "Data Source=localhost\\SQLEXPRESS;Initial Catalog=MyTestDB;User ID=****;Password=****"
}
20201108_004_code_02.png

■Startup.csを編集する。
ファイル冒頭に参照を追加する。
using Microsoft.EntityFrameworkCore;
using MyWebApp.DbContexts;
ConfigureServicesメソッドに、以下のコードを張り付ける。 キー名はappsettings.jsonで指定したものに書き換える。
services.AddDbContext<MyTestDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("MyTestDB")));
20201108_004_code_03.png
ここまでで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; // 追加
}
20201108_004_code_04.png

Indexアクションを編集する。
次のコードを追加し、UserTableからデータを取得する。
var item = _context.UserTable.FirstOrDefault();
if (item != null)
{
ViewBag.mydata = item.Name;
}
20201108_004_code_06.png

■Views\Home\Index.cshtmlを編集する。
Indexアクションを次の様に書き換え、データを表示する。
<h1>こんにちは@(ViewBag.mydata)さん</h1>
20201108_004_code_05.png

デバッグ実行
ブラウザでデータの取得・表示が確認できる。
20201108_005_disp_01.png


参考サイト
posted by Hiro at 20:00| Comment(13) | プログラム
この記事へのコメント
テ」窶堋ォテ」窶堋ヲテ」ニ陳ウテ」窶堋ソテ」ニ陳シテ」窶堋ケテ」ニ塚�テ」ニ陳ゥテ」窶堋、テ」窶堋ッ1.3テ」ニ陳�テ」ニ陳シテ」ニ塚�テ・ツ渉催・窶ケ窶「テ」ツ�ツェテ」ツ≫�,Preraテ「竄ャ窶ケテ「竄ャ窶ケskazana Lektira Spomenka 29,テ」窶堋ォテ」ニ陳シテ」ニ椎セテ」ニ陳ウテ」窶堋ケテ」窶堋ュテ」ニ陳」テ」ニ陳ウテ」窶堋ュテ」ニ陳シテ」窶堋クテ」窶堋ァテ」ニ陳催」ニ陳ャテ」ニ陳シテ」窶堋ソテ」ニ陳シ
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
Posted by quinfort at 2022年07月02日 02:38
Alcatech.BPM.Studio.Pro.4.91-H2Oテ」窶堋キテ」ニ陳ェテ」窶堋「テ」ニ陳ォテ」窶堋ュテ」ニ陳シ,networkminerテ」ニ停氾」ニ陳ュテ」ニ停「テ」窶堋ァテ」ニ槌津」窶堋キテ」ニ陳ァテ」ニ椎テ」ニ陳ォテ」ニ停「テ」ニ陳ォテ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ76,テ」窶堋ヲテ」窶堋ゥテ」ニ陳シテ」窶堋ュテ」ニ陳ウテ」窶堋ーテ」ニ陳サテ」ニ停。テ」ニ槌津」ニ停ーS01E06 720p HDTV x264 IMMERSE eztv
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/
Posted by heddros at 2022年08月07日 09:43
テ」窶堋「テ」窶堋ッテ」ニ停テ」窶堋」テ」ニ停┐テ」ニ陳シテ」窶堋キテ」ニ陳ァテ」ニ陳ウテ」窶堋ュテ」ニ陳シテ」ニ椎。テ」窶堋、テ」ニ停佚」ニ陳ォテ」ニ椎セテ」ニ陳催」ニ陳シテ」窶堋「テ」ニ停ぎテ」ニ陳シ,テァ窶ケツャテ・ツ債テ」ツ≫愿」ツ≫愿」ツ�ツィテ、ツサナテァ窶ーヒ�テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ-ChattChittoテ」窶堋クテ」窶堋ァテ」ニ陳催」ニ陳ャテ」ニ陳シテ」窶堋ソテ」窶堋ェテ」ニ陳ウテ」ニ陳ゥテ」窶堋、テ」ニ陳ウテ」ツ�ツォテ」窶塒�テ」窶壺ケテ」窶堋キテ」ニ陳ェテ」窶堋「テ」ニ陳ォ,NI Multisim and Ultiboardテッツシヒ�Circuit Design Suiteテッツシ窶ー14.1 uTorrent
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/
Posted by jamrey at 2022年08月07日 11:14
テ」ニ陳。テ」ニ陳ウテ」窶堋ソテ」ニ陳シテ」窶堋ーテ」ニ陳ゥテ」ニ停「テ」窶堋」テ」ニ槌津」窶堋ッテ」窶堋ケテ」ニ停佚」ニ槌津」ニ停ー9.5テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ,ydsテ」ニ停佚」ニ停「テ」窶堋ゥテ」ニ陳シテ」ニ椎セテ」ニ陳ウテ」窶堋ケテ」窶堋ーテ」ニ陳ャテ」ニ陳シテ」ニ停ー11テヲ窶凪。テヲツウ窶「テ」ニ停テ」窶堋ケテ」ニ塚�テ」ニ停禿」ニ槌津」窶堋ッcevapanahtar,sdfテ」ニ停。テ」ニ陳シテ」窶堋ソテ」ニ停┐テ」ニ陳シテ」窶堋ケテ」ツ�ツョテ」ニ停佚」窶堋ケテ」ニ陳ッテ」ニ陳シテ」ニ停ーテ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッテ」ニ停「テ」窶堋。テ」窶堋、テ」ニ陳ォ
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/
Posted by evelkar at 2022年08月07日 16:16
テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッテ」ニ椎セテ」窶堋ケ2000テ」ニ陳静」ニ陳シテ」窶堋クテ」ニ陳ァテ」ニ陳ウ2012,acer erecovery management windows 732テ」ニ停愿」ニ槌津」ニ塚�テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,x force keygen Inventor LT 201032テ」ニ停愿」ニ槌津」ニ塚�テァ窶楪。テヲ窶凪┐テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー
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
Posted by sadyphi at 2022年08月07日 17:29
Catia V5 R2064テ」ニ停愿」ニ槌津」ニ塚�テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ,HDテ」窶堋ェテ」ニ陳ウテ」ニ陳ゥテ」窶堋、テ」ニ陳ウテ」ニ停氾」ニ陳ャテ」ニ陳シテ」ニ陳、テ」ニ陳シテッツシヒ�Ramayana-Epic engテ・ツ青ケテ」ツ�ツ催ヲ窶コツソテ」ツ⇒�テ」ニ停凖」ニ陳ウテ」ニ停。テ」窶堋」テ」ニ陳シティツェナセテヲヒ慊テァ窶敖サテァ窶楪。テヲ窶凪┐テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ーテヲ竄ャツ・テヲツオツ�テッツシ窶ー,OS X Mavericks 10.9.1テッツシヒ�Mac App Storeテッツシ窶ー.rar
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/
Posted by sansmik at 2022年08月07日 18:43
テ」窶堋ュテ」ニ陳」テ」ニ停愿」ニ陳催」ニ槌津」ニ塚�テ」ニ停愿」窶堋クテ」ニ陳ァテ」ニ陳ウテ」ニ陳静」ニ陳シテ」窶堋クテ」ニ陳ァテ」ニ陳ウ8テ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ,テ」ニ椎セテ」ニ停テ」ニ陳ェテ」窶堋「テ」ニ陳。テ」ニ停。テ」窶堋」テ」窶堋ォテ」窶堋、テ」ニ陳ウテ」ニ停ーテ」ニ陳催」窶堋キテ」窶堋「テゥ窶コツサテ・ツュツ静」ニ停禿」ニ槌津」窶堋ッテァ窶楪。テヲ窶凪┐185,WindowBlinds 5 [Enhanced] -With Crack 60Skinsテァ窶楪。テヲ窶凪┐テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー
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
Posted by rowale at 2022年08月08日 00:48
mastercamx5テ」ニ停「テ」ニ陳ォテ」窶堋ッテ」ニ陳ゥテ」ニ槌津」窶堋ッ64テ」ニ停愿」ニ槌津」ニ塚�Firefoxテ」窶壺凖」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,Athentech Perfectly Clear 1.7.1 for Photoshopテッツシヒ�32-64テ」ニ停愿」ニ槌津」ニ塚�テッツシ窶ー[Chin Serial Key keygen,maquinaselectricasテ」ニ陳�テ」ニ陳」テ」ニ槌津」ニ停氾」ニ椎セテ」ニ陳ウ4edicion
7193e21ce4 lynndory
https://wincracks.net/
https://winkeys.net/
https://appscracks.com/
https://softscollection.com/
https://newcracks.org/


https://pasargadsazeh.com/index.php/k2/item/13-what-makes-engineering-consulting-different
Posted by lynndory at 2022年09月12日 09:26
ティツヲツェテ」ニ停。テ」窶堋」テ」ニ陳ャテ」窶堋ッテ」ニ塚�テ」ニ陳ェテ」ツ�ツョテ」窶堋、テ」ニ陳ウテ」ニ停。テ」ニ槌津」窶堋ッテ」窶堋ケIdmCrack 13l,techwell tw6802dvrテ」窶堋ォテ」ニ陳シテ」ニ停ーテ」ニ停ーテ」ニ陳ゥテ」窶堋、テ」ニ陳静」ニ陳シ,3ds max 2013 keygenxforceテァ窶楪。テヲ窶凪┐テ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー
74cd785c74 jannadai
https://winprograms.org/
https://wincollection.net/
https://newcracks.org/
https://softscollection.com/
https://appscracks.com/


http://www.blumenundgarten.de/index.php?pos=0&section=guestbook
Posted by jannadai at 2022年09月23日 05:06
テ」窶堋ヲテ」ニ陳ォテ」ニ停ーテ」窶堋・テ」ニ陳シティツェナセテ」ツ�ツョmadaniqaidapdfテ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ー,corel draw x4 keygen by kaizer soze core,descargarkeygenparaautocad201032bitseningles
74cd785c74 trouher
https://cracksmage.com/
https://cracksmagic.com/
https://cracksprofi.com/
https://cracksrate.com/
https://cracksto.com/


http://hotelbooking.sblo.jp/article/186096404.html
Posted by trouher at 2022年09月23日 21:11
YouTubeテ」ニ停ぎテ」窶堋ヲテ」ニ陳ウテ」ニ陳ュテ」ニ陳シテ」ニ停ーテァ窶敖ィテ」ツ�ツョテ」ニ椎禿」ニ槌津」ニ塚�テ」窶壺凖ィツ。ツィテァツ、ツコ1,テ」窶堋ォテ」ニ陳湘」窶堋「テ」ニ停ケテ」ニ停凖」ニ陳ウテ」ニ停。テ」窶堋」テ」ニ陳シティツェナセ720pdvdripテヲ竄ャツ・テヲツオツ�,securitymonitorproserialkeygencrack
74cd785c74 fermai
https://freecollection.net/
https://free4windows.com/
https://filescracks.net/
https://exe2zip.com/
https://4windows.net/


https://www.funmarket.biz/?product=portable-3-layered-lunch-box
Posted by fermai at 2022年09月24日 11:08
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: