0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Entity Framework CoreでSQL Serverに接続する【実践編①】

Posted at

こんにちは。藤原です。

この記事では、.NET Webアプリケーション開発でDBフレームワークである EntityFrameWorkCore(以下、EFCoreと記載)について取り上げています。

今回はEFCoreを介して、実践編①ということでEFCoreをプロジェクトに導入。コンテキストクラスの作成までやってしまいましょう🗒

注意
本記事はDB接続のための前準備が完了している前提で記載しています。
準備がまだの方は↓の【準備編】をご参照ください。
https://qiita.com/pesysyon/items/54b51c70a31a41eef035

今回の目標

・接続先テーブルの作成
・EFCore の導入
・DBコンテキストクラスの作成

接続先テーブルの作成

それではさっそくソースコードでテーブルのデータを取得!
...といきたいところですが、テーブルが無いですね。

まずはSSMS(SQL Server Management Studio)上からさくっと検証用のテーブルを
作成してしまいましょう!

SSMSで前回の記事で作成しておいたDBを開きます。
開けたらテーブルで「新規作成 > テーブル」を選択しましょう。

image.png

すると「列名」「データ型」「NULL許容」等のテーブルへ作成カラムの
設定UIが表示されるかと思います。

image.png

今回は MemberId(会員ID)、MemberName(会員名)、MemberAddress(会員住所)という3つのカラムを設定しました。
※主キーは MemberId(会員ID)で3つともNULL非許容に設定。

カラムが設定出来たら、Ctrl + S (保存ボタンでも可)を押して、テーブル名を設定します。
テーブル名は「Member」としました。

入力できたら「OK」を押して、テーブルの作成を完了しましょう。

image.png

無事にテーブルが作成できました!検証用としてはこれで十分です。

image.png

注意
実際の開発の際にはテーブル定義はシステム根幹を担うため、
きちんとした設計が重要です。

EFCore の導入

さあ、それでは本丸のEFCoreをPJに導入しましょう~!
VisualStudioでの作業に戻ります。
ソースが書きたくてウズウズしている方、もう少しです。。

Nugetパッケージ管理にて「参照」タブを選択し、「EntityFrameWorkCore」で検索すると「Microsoft.EntityFrameworkCore.SqlServer」がヒットします。
対象PJ確認のうえ、インストールを実行しましょう。

image.png

バージョンはご自身の作成されたソリューションのバージョンに合わせましょう。
互換性がないバージョンインストールを試みるとインストールに失敗します。

インストールが完了したらソリューションエクスプローラー上から、対象のPJ -> 依存関係 -> パッケージを開いてPJにPkgが追加されていることを確認しましょう!

image.png

これでEFCoreの導入も完了です!

DBコンテキストクラスの作成

それでは必要なクラス作成へと移りましょう。

DBコンテキストの作成

DBコンテキストクラスとは、一言でいうと「データベースとのやり取りを管理する中心的な役割を果たすクラス」と言えます。
このクラスでデータベース接続を管理するので、EFCoreにおいて欠かせない重要な役割を担っているわけです。
その他にも「エンティティとDBのマッピング」「クエリの実行と追跡」「トランザクションの管理」など大切な幾つかの役割を担います。

より詳しく知りたい方は公式ページを読んでみることが良いと思います。
Entity Framework Core Microsoft公式ページ

まずはフォルダを1つ追加してDBコンテキスト用のファイルを新規作成します。
名前は「DB名+Context」とするのがおススメです。

image.png

クラスが作成できたら、usingで「EntityFrameworkCore」と「SqlClient」を追加しましょう!

image.png

これでEFCoreの恩恵を受けられます:muscle_tone1:

最後に

今回はDBコンテキストクラスの作成まで完了しました。
ここからはDBコンテキストの必要処理、Modelクラスの作成、実際のデータ取得と進んでいきます。

ここまで読んでいただき、ありがとうございました:writing_hand_tone1:

以上、藤原でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?