LoginSignup
2
1

More than 3 years have passed since last update.

ASP.NET coreでConoHaDB(mariaDB)を操作する。

Last updated at Posted at 2019-05-17

前提条件

ConoHaDBでデータベースを作成済み

ASP.NET core アプリケーションのプロジェクトをVisual Studioで作成済み

準備

EF Core ツールのインストール

データベースのスキャフォールディングに利用します。

NuGetから最新版をダウンロードしてください。

Microsoft.EntityFrameworkCore.Tools

データベースプロバイダーのインストール

ConoHaDBではmariaDBが採用されています。

なので、プロバイダーには Pomelo.EntityFrameworkCore.MySql を使用することにします。

NuGetパッケージマネージャーから最新版をインストールして下さい。

スキャフォールディング

ConoHaDBの設定

まずConoHaの方でアクセス用ユーザーの作成をします。

ユーザー情報は「一般ユーザー」、接続許可ホストは % にしてください。

データベース名、接続ポート, ホスト名のグローバルネットワークの値をメモしておいて下さい。

VisualStudio側の作業

ツール -> NuGetパッケージマネージャ -> パッケージマネージャコンソール を起動してください。
コンソールで次のコマンド

Scaffold-DbContext "Server={グローバルネットワークの値},{ポート番号};Database={データベース名};User={ユーザー名};Password={パスワード};" "Pomelo.EntityFrameworkCore.MySql"

を入力してEnter。

しばらくすると、モデルクラスが作成されます。

データベースにアクセスしてみる

なんちゃらdatabaseContextクラスを利用します。このクラスはIDisposableインターフェースを実装しているので、usingステートメントが使えます。

例:Userデータを保存するデータベースの場合

データ追加

add_sample
using (var database = new HogedatabaseContext())
{
    await database.User.AddAsync(new User());
    await database.SaveChangesAsync();
}

変更

change_sample
using (var database = new HogedatabaseContext())
{
    User currentData = database.User.First();

    if(currentData != null){
        currentData.Data = new User();
        await database.SaveChangesAsync();
    }
}

削除

remove_sample
using (var database = new HogedatabaseContext())
{
    User currentData = database.User.First();

    if(currentData != null){
        database.User.Remove(currentData);
        await database.SaveChangesAsync();
    }
}

参考資料

既存のデータベースを使用した ASP.NET Core での EF Core の概要

Pomelo.EntityFrameworkCore.MySql

"EF Core ツール リファレンス (パッケージ マネージャー コンソール) - EF Core

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1