【Entity Framework】DbContextクラスを作成してデータベースに接続

Entity Frameworkの概念モデルを使用して、データベースに対して処理を行う場合、DbContextクラスを利用することになります。このDbContextクラスとは一体どういったものなのかをサンプルソースとともにここで確認しましょう。
- PG
- DbContextクラスを実装しようと思いますが、どうやって実装すればいいのでしょうか?
- PL
- DbContextクラスはEntity Frameworkを導入すれば利用できるようになります。まずはNuGetパッケージ管理からEntity Frameworkをインストールしましょう。その後は、using System.Data.Entity;をプログラム上部にコーディングし、各々が新しく作成したクラスにDbContextクラスを継承するなどして使用します。
DbContextクラスのできること
Entity Frameworkでは、データベースへの検索、更新、登録、削除といった基本的な操作は、DbContextクラスを使用して行うことができます。
Add()関数を用いることで、各々が作成した変数やプロパティに対してのデータの設定を行うことができます。しかし、この状態ではまだデータベースに対しての処理はなされていません。SaveChanges()関数を利用することで、設定した値が実際にデータベースに反映されます。このように、データベースの操作を簡単にできる関数も用意されているため、Entity Framework初心者の方でも簡単にコーディングできるのではないでしょうか。
DbContextを利用する場合、内容はDispose(破棄)するまで保持され続けます。さらに、DbContextは内部に設定したオブジェクトの状態を保持していますので、大量データを扱う場合は、メモリ不足に陥る場合があります。以上の点に注意することが必要です。
実際にデータベースに接続してみましょう
ここではDbContext クラスを実際に活用して、SQL Serverにデータを登録します。サンプルソースはWindows フォームで作成しています。
1
|
<connectionStrings><add name="Model1" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=WindowsFormsApp8.Properties.Classtest;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /></connectionStrings></configuration>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
using System.Data.Entity;
namespace WindowsFormsApp8
{
class Classtest : DbContext
{
//コンストラクター
public Classtest()
: base("name=Model1")
{
Database.SetInitializer(
new MigrateDatabaseToLatestVersion
<Classtest, MyDbConfiguration>());
}
//デストラクター
~Classtest()
{
}
//破棄
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
//データベース設定用
public DbSet<City> City { get; set; }
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
using System.Data.Entity.Migrations;
namespace WindowsFormsApp8
{
class MyDbConfiguration
: DbMigrationsConfiguration<Classtest>
{
public MyDbConfiguration()
{
AutomaticMigrationsEnabled = true;
}
}
}
|
1
2
3
4
5
6
7
8
|
namespace WindowsFormsApp8
{
class City
{
public string Id { get; set; }
public string CityName { get; set; }
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using System;
using System.Windows.Forms;
namespace WindowsFormsApp8
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (var context = new Classtest())
{
context.City.Add(new City
{
//値を保持
Id = "001",
CityName = "Tokyo",
});
//データベースにデータを反映させる
context.SaveChanges();
//破棄
context.Dispose();
}
}
}
}
|
画面実行からデータベース内容確認
- PG
- DbContextクラスを使用して、データベースに新規データを登録できました!
- PL
- これでEntity Frameworkを活用しての基本的なデータベース操作もバッチリですね。あとは現場で実際に活用してコーディングに慣れていきましょう。
Entity Frameworkを使いこなしましょう
Entity Frameworkを活用してのデータベース操作は、現在では多くの開発現場で導入されています。C#での開発を求められる際には、Entity Frameworkで作成できるスキルの有無は非常に重要になってくるでしょう。今回紹介したDbContextクラスの利用方法もあわせて、自分のスキルにプラスになるように学習していきましょう。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)