あとらすの備忘録

チラ裏のメモ帳

C# EntityFrameworkのCodeFirstでCRUDをやってみる

概要

海上自衛隊護衛艦情報を元にLINQ to Entitiesの練習を兼ねて書き始めたコードですが
前回、書いたC# EntityFrameworkを使ったDBアクセス コードファースト編の記事が下記で紹介している書籍の内容をパクッているだけだったのでやり直したついでに書き直す次第です。

本記事の内容は「実戦で役立つ C#プログラミングのイディオム/定石&パターン」のChapter13「EntityFrameworkによるデータアクセス」を実践した形のものになります。

2018/05/20 とりあえず公開していますがこの記事は未完成です。
順次追記していきます。

前提

今回の記事では、LINQ to Entitiesやラムダ式の使用方法には特段触れません。
EntityFrameworkを使用してCRUDを行うだけです。

また、コードの記載量の兼ね合いから記事を分割します。
ソース、実行環境等は全て同一です。

環境

ソース

github.com

プロジェクト構成

  • プロジェクト/Data
    練習用の元データtxtファイルです。データのInsertで使用します。
  • プロジェクト/DataStore
    Create/Read/Update/Deleteの各クラスを配置しています。
    DBアクセスに関するクラスを配置する想定です。
  • プロジェクト/Models
    Entityクラス(オブジェクト)を配置しています。

使用するデータについて

データのエンティティや細かいリレーションはEntityクラスの作成時に記載しますがデータ自体は海上自衛隊護衛艦情報を使用します。
データについては人間で言うところの名前、生年月日、身長、体重等の簡単なWikipediaで調べることが出来るような内容です。
今回テストデータを作成するにあたり細かな艦船ごとの情報はWikipediaを参照しましたが
部隊編成については下記のサイト様を参考にさせていただきました。

また部隊ごとの英名は公式通達の内容をそのまま使用しました。
なのでクラス名、プロパティ名などが長い時があります。

EntityFrameworkとは?CodeFirstとは?

プロジェクトの作成/EntityFrameworkのインストール

kitigai.hatenablog.com

Entityクラスの作成

kitigai.hatenablog.com

DbContextクラスの作成

kitigai.hatenablog.com

Create/Read/Update/Deleteの実行

Create

kitigai.hatenablog.com

Read

kitigai.hatenablog.com

Update

Delete

アノテーション

自動マイグレーション

参考サイト様

雑感