lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

C# EntityFrameworkでDbContextクラスを作成する。

概要

DB接続用のDbContextクラスを継承したクラスを作成します。 対象のEntityクラスはこちらの記事で作成した護衛艦クラスを使用します。

目次

  • 概要
  • 目次
  • DbContextクラスの作成
  • 接続するEntityの定義
  • 接続文字列の確認
  • DBにテーブルを作成
続きを読む

C# EntityFrameworkのEntityクラスを作成する。

概要

  • 今回作成するEntityクラスのリレーションの説明
  • サンプルプログラムで使用するデータの説明
  • コードの説明

断りになりますが、記事を書いている人は趣味プロの人なのでDB設計等を業務で行ったことがありません。
リレーションがおかしかったり正規化が全然なってないなどあると思います。
また、アノテーションの部分で触れますが初回はカラムの文字数制限等は設定しません。

目次

  • 概要
  • 目次
  • 作成するEntityクラスの全体像
  • Entityクラス
    • 目指すべき姿
    • Entityクラスの作成
    • 護衛艦クラス
    • 護衛隊クラス
      • virtualについて
    • 護衛隊群クラス
    • 艦種クラス
      • 艦種について補足
    • 艦級クラス
    • 護衛艦クラスの修正

作成するEntityクラスの全体像

f:id:HM_Atlas:20180507015001p:plain

作成するクラスは以下の5点です。

クラス名 概要
護衛艦クラス 護衛艦の基本情報 ex.所属隊,艦種,艦名,艦船番号etc
護衛隊クラス 護衛艦が所属する隊 ex.第1護衛隊,第2護衛隊
護衛隊群クラス 護衛隊が所属する群 ex.第1護衛隊群,第2護衛隊群
艦種クラス 艦種を識別する艦種記号 ex.DD(汎用護衛艦),DDG(ミサイル護衛艦)
艦級クラス 型を識別する艦級コード ex.ひゅうが型,こんごう型

護衛艦いづれかの護衛隊に所属しており、さらに護衛隊は護衛隊群に所属しています。
また、護衛艦情報の一部として護衛艦クラスから護衛艦の艦種・艦級を特定出来ます。

各艦のデータについてはWikipediaを参照し、海上自衛隊の編成については下記のサイト様を参考にしました。

続きを読む

VisualStudio 2017でガイドライン(アウトライン)の色を変更

概要

VisualStudio2017でアウトライン(アウトライン?)の色を変更します。
VisualStudio2015ではProductivity Power Toolsのおかげで各ブロック毎に色を変更出来たのですが
VS2017ではPPTにまだその機能が追加されておらず、デフォルトでグレーになっており見づらいので変更します。
(これからのアップデートで変更されるとは思いますが。VS2015の場合はフォント設定の項目に「Block Structure」の項目が各ブロック毎(クラス、メソッド等)に用意されています。)

目次

  • 概要
  • 目次
  • 環境
  • 目指したいもの
  • 設定を変更
  • 設定後
  • 参考サイト様
  • 雑感

環境

続きを読む

C# EntityFrameworkのインストール

概要

EntityFrameworkを使用したプロジェクトの作成とNuGetからのインストールを実施します。
内容としてはとても薄いです。

目次

  • 概要
  • 目次
  • プロジェクトの作成
  • NuGetからEntityFrameworkをインストール
続きを読む

C# EntityFrameworkでネストしたプロパティのデータを取得する

概要

タイトルですでに何言ってるかわからないですよね。自分でも表現の仕方がわからないです。
SQLで言うとLEFT JOINをネスト(LEFT JOINの中にLEFT JOIN)させてデータを取得する感じです。
それをLINQ to Entitiesでやりたかった。できたのでメモ

SELECT
    適当
FROM
  適当A AS A
  LEFT JOIN ( 
    SELECT * FROM 適当B
      LEFT JOIN (SELECT * FROM 適当C) AS C 
        ON 適当
  ) AS B
    ON 適当

目次

  • 概要
  • 目次
  • 環境
  • ソース
  • 登場人物(オブジェクト)
    • 護衛艦テーブル
    • 隊テーブル
    • 群テーブル
    • 艦種テーブル
  • 抽出目的のデータ(目指すべき姿)
  • LINQ to Entitiesでデータを抽出
    • 抽出でき”ない”コード
    • 抽出できるコード
  • 参考サイト様
  • 雑感

環境

ソース

github.com

続きを読む