.net column

.NET開発者のためのブログメディア
サーバーアプリ開発

Entity Frameworkでストアドプロシージャを使用する方法

2020年03月30日

データベースにSQL Serverを導入していれば、Transact-SQLという言語を使用してデータベースサイドでプログラミングを行うことが可能です。これをストアドプロシージャと呼びます。ストアドプロシージャは多くの現場で活用されていますので、Entity Frameworkから呼び出せると作業の幅も広がります。ここではEntity Frameworkとストアドプロシージャについて確認していきましょう。

SE
ストアドプロシージャをEntity Frameworkから呼び出すことができたら、データ取得などストアドプロシージャサイドでコーディングする選択肢も増えますね。でもどうやって実装すれば良いのでしょうか?
PL
実装の選択肢が増えることはとても良いことですね。しかし、ストアドプロシージャを呼び出すためには、Visual Studioでの作業が少しばかり必要です。早速その手順を一緒に確認していきましょう。

ストアドプロシージャを呼び出すための前準備

  1. まずは使用するストアドプロシージャをデータベース内に作成しましょう。
  2. ここからはVisual Studioでの作業です。
  3. ソリューションエクスプローラー内で右クリック→「追加」→「新しい項目」→「Data」タブ→「ADO.NET Entity Data Model」を選択します。
    ADO.NET Entity Data Modelの追加

  4. 「データベースからEFDesigner」を選択します。
  5. データベースからEFDesigner

  6. データベースの接続先を設定します。
  7. 入力できたらテスト接続で接続確認を実施し、確認ができたら「OK」ボタンを押下します。
    データベースの接続先を設定

  8. 「次へ」を押下します。
  9. 次へ

  10. Entity Frameworkのバージョンを選択します。
  11. バージョンを選択

  12. ストアドプロシージャを含めて「完了」ボタンを押下します。
  13. 完了

ストアドプロシージャを呼び出すサンプルプログラム

Entity Frameworkからストアドプロシージャを呼び出し、データの登録を行うサンプルプログラムです。Window Fromsでテスト実行を行います。ID:002, CityName:Osakaを設定するようにします。

実行画面
実行画面

実行結果前
実行結果前

実行結果後
実行結果後

SE
Entity Frameworkからストアドプロシージャを呼び出すことができました。なんだかワンランク上のプログラマーになった感じです。
PL
そうですね。コーディングの選択肢を増やすことは一流のプログラマーになるには欠かすことのできないことです。もっともっと、できることを増やしていきましょうね。

ストアドプロシージャを積極的に導入してみましょう

ストアドプロシージャは、データベースサイドでコンパイルされるので、C#サイドでコンパイルした後の本番環境へのDLLの置き換えなどが不要です。また、検索処理速度もC#サイドでSQLクエリをコーディングするよりスピードアップできますので、Entity Frameworkとストアドプロシージャの両方を活用できるプログラマーを目指してみても良いのではないでしょうか。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)