前回は.NET Coreをubuntuで動かすものを記事にしました。今回はubuntu上で.NET Coreを使ってAzure Databaseを動かせるかという検証です。ubuntuに.NET Coreを動かす場合は以下を参考にしてください。
tekitoumemo.hatenablog.com
僕の持ってるサブPCはポンコツでSQL Serverを入れたらパンクしちゃいます。メモリが3.25G以上が推奨ってもう無理じゃん。。
tekitoumemo.hatenablog.com
qiita.com
AzureDatabaseで動かして開発できたらポンコツPCでもなにかと使える!と思って検証しました。また、ubuntu上でAzure SQL Serverを動かすにはどんな作業が必要なのかの検証も含め、実施しました。結果
楽勝でした
はい。
Azure Databaseを作成します。
[SQLデータベース]をクリック→[SQLデータベースの作成]をクリック

必要な情報を入力します。
- データベース名
- サブスクリプション
- リソースグループ
- ソースの選択
これらは任意の情報を入力してください。
- サーバー
Azure SQL Serverはデータベースのサーバーを構築しなければいけないのでこちらの設定を行います。
こちらも任意の情報を入力してください。

- SQLエラスティックプール
こちらは大規模なDBでスケーリングするときの予算や規模の設定が出来ます。今回は検証なので「いいえ」にしておきます。
- 価格レベル
超知りたいところですね。SingleDatabaseだとBasic、Standard、Preniumの3つがあるので、今回はBasicにします。2G使えて、東日本リージョンで月額600円代です。Standardの250Gが使えるプランでも月額1800円程度なのでめっちゃ安いです。以下の計算ツールで計算出来ます。
azure.microsoft.com
これらの情報を入力したら作成します。ものの5分で作成出来ます。
.Net Coreの準備をします。
今回はEntity Framework Coreを使います。めっちゃ雑ですが、Githubにサンプルを載っけてるので参考になればと思います。
github.com
onConfigメソッドを作成します。
using Microsoft.EntityFrameworkCore;
using System.Data.SqlClient;
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// 接続文字列を指定する
var connectionString = "";
optionsBuilder.UseSqlServer(connectionString);
}Nugetから「Microsoft.EntityFrameworkCore」、「System.Data.SqlClient」をインストールして下さい。接続文字列はAzure Portalに記載されています。真っ赤にぬりつぶされたところに記載されています。

モデルとモデルをマッピングする処理を記載します。
public DbSet<Test> _test { get; set; }
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
public Nullable<DateTime> UpdateTime { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// テーブルにマッピングする
modelBuilder.Entity<Test>().ToTable("Test");
}modelBuilder.Entityにジェネリックでモデルを指定し、ToTableの引数にテーブル名を指定します。その他、モデルクラスとプロパティを設定します。
呼び出しの実装を行います。
using (var dbContext = new AppDbContext())
{
var test = dbContext._test.ToList();
}これで一通り完成です。
それではVSCodeでデバッグしてみます。

例外が発生しました。このIPアドレスは接続出来ないよ!ってエラーです。Azure Databaseではファイアウォールが設定されているので接続するIPを除外してあげなければいけません。
ファイアウォールの設定を行います。

[概要]→[サーバーファイアウォールの設定]をクリックします。

[クライアントIPの追加]を押下します。先ほどアクセスしたので、そのまま設定が出来ます。もちろん、手動で入力することも出来ます。
設定が完了したら再度、接続してみます。

ちゃんとデータが取れました!
これで、ubuntu上で.Net Coreの開発がまともにできるようになりました。やっとこれでリビングで寝っ転がりながら開発ができる!