C#

【C#】いろいろなDBアクセスする方法

C#のDBアクセスするやり方として、下記の3種類についてそれぞれの特徴などをまとめます。

  • ADO.NET
  • EntityFrameWork
  • Dapper

下記は3つの視点から特徴をまとめた表です。

名称 自動マッピング SQL自動生成 パフォーマンス
ADO.NET × ×
EntityFrameWork
Dapper

以下、それぞれの特徴について説明していきます。

ADO.NET

ADO.NETはコード上にSQL文を記述します。SqlClientクラスを使ったやり方です。
パフォーマンスに優れていますが、記述しなければならないことが多くコードを書くのが非常に面倒です。

パフォーマンスに優れている

コード量が多くなり、生産性が低い

EntityFrameWork

EntityFrameWorkはコード上にSQL文を記述しません。記述したLINQがSQL文に変換されて実行されます。
マッピングも自動で行ってくれて、直感的にコードを書くことができて非常に楽です。
また、自動でマッピング用のクラスを生成sすることも可能です。

CodeFirst、DBFirst、ModelFirstなど開発手法も選ぶことができたり、他にも様々な便利な機能を兼ね備えたフレームワークです。

デメリットとしてはパフォーマンスが低いという点があります。パフォーマンスが重視されるプロジェクトでは場合によっては選択肢から外れることもあるかと思います。

コーディングが楽で、生産性が高い

パフォーマンスが低い

Dapper

DapperはSQL文をコード上に記述する必要があります。
また、自動でマッピングを行ってくれます。

パフォーマンスはADO.NETに近く、優れています。
EntityFrameWorkほど多機能ではありませんが、自動マッピング機能があるのが特徴としてあります。
また、SQL文については拡張ライブラリを使えば書く必要が無くなります。

使い方についてはこちらの記事にまとめています。

  • パフォーマンスに優れている
  • コーディングが楽で、生産性が高い

特になし(※あくまで個人の感想です)

まとめ

EntityFrameWorkを使う場合、SQLを記述する必要はなくなりますが、これはメリットにもデメリットにもなるかと思います。どういうSQLが発行されるのかを意識して開発していれば問題ないとは思いますが。

個人的にはDapperがオススメです。

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】安心保障と豊富な案件紹介 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい

【未経験向け】自宅で現役エンジニアから学べる TechAcademy

テックアカデミーは、現役エンジニアから学べるオンラインに特化したプログラミングスクールです。
講師は全員、通過率10%の選考に合格した現役エンジニア。
確かなスキルをもとに受講生をマンツーマンサポートします。


▼こんな方におすすめ
・自宅にいながらオンライン完結で勉強できる
・受講生に1人ずつ現役エンジニアのパーソナルメンターが専属でつく
・チャットで質問すればすぐに回答が返ってくる
・オリジナルサービスやオリジナルアプリなどの開発までサポート