こんにちは、そうとです。

普段、プロジェクトではC#を使って業務システムを開発しています。

今日はC#の代表的なORマッパーである EntityFramework を紹介します。
ORマッパーはオブジェクト指向言語のオブジェクトとデータベースのレコードをマッピングしてプログラムからデータベースを操作するためのものです。要するにSQLを書かないでDBを操作することができます。便利ですね。

今回は、「EntityFramework」を使用した基本的なデータの追加、更新、削除についてご紹介したいと思います。

モデル作成

EntityFrameにおいての「モデル」とは、DBスキーマを定義するものであり、テーブルや、エンティティと呼ばれます。エンティティは単数、テーブルは複数といったイメージが近いです。

以下は Usersのモデルを定義するC#プログラムです。

using System;
using System.Collections.Generic;
 
namespace Users.Models
{
    public class Users
    {
        //ID    
        public int ID { get; set; }
        //氏名
        public string Name { get; set; }
        //性別
        public string Gender { get; set; }
        //生年月日
        public DateTime BirthDay { get; set; }
        //部門
        public string Department  { get; set; }      
    }
}

データベース情報

上記のプログラムは以下のようなテーブルスキーマになります。

以下はサンプルデータ。

データ追加

データを追加する際はこんな感じにします。

//データ追加
static void Main(string[] args)
{
    using (var context = new DBContext())
    {
        // Addしただけではデータベースにはまだ追加されません
        context.Users.Add(new Users
        {
            ID = 7,
            Name = "佐々木",
            Gender = "男性",
            BirthDay = "2000/05/07",
            Department = "システム部",
        });
 
        // SaveChangesメソッドを呼び出すとデータベースに反映されるようになります
        context.SaveChanges();
    }
}

データ取得

以下はプログラムは、var Users01ID=1var Users02Name="佐藤" のデータが指定されて取得されます。

//データ取得
static void Main(string[] args)
{
    using (var context = new DbContext())
    {
       var Users01 = context.Users.Find(x => x.ID == 1);
       var Users02 = context.Users.Where(x => x.Name == "佐藤").ToArray(); 
    }
}

データ更新

データを取得して、Nameを「佐藤」から「鈴木」に変更することもできます。

//データ更新
static void Main(string[] args)
{
    using (var context = new DbContext())
    {
       var Users = context.User.Where(x => x.ID <= 4);
       // 更新
       Users.Name = "鈴木";
       // 削除や更新をするときはSaveChangesメソッドを忘れずに呼び出します。
       context.SaveChanges();
    }
}

データ削除

ID=5に該当するデータの削除を行うサンプルプログラム。

//データ削除
static void Main(string[] args)
{
    using (var context = new DbContext())
    {
       var Users = context.User.Find(x => x.ID == 5);
       //削除
       context.Users.Remove(Users);

       // 削除や更新をするときはSaveChangesメソッドを忘れずに呼び出します。
       context.SaveChanges();
    }
}

ざっとデータベースの操作は以上です。

すでに用意されたメソッドを使用することで、生のSQL文を書かなくてもデータベースに追加、更新、削除をすることが可能です。

C#でアプリケーション開発をする際は、是非、利用を検討してみて下さい。