Xamarin.FormsとAzure Mobile Appsの連携時のテーブル追加方法


Xamarin.FormsとAzure Mobile Appsの連携については、
Xamarin.Forms アプリの作成
の通りに進めることで、TodoListを持つサンプルアプリを作成できますが、
TodoItem以外のテーブルを追加してアプリと連携させるための、サーバサイドの作業内容をまとめます。

環境

Visual Studio Professional 2015
Microsoft azure tools 2.9
バックエンド言語:C#

テーブルクラスの追加

クイックスタートを完了させると、以下のようなプロジェクト構成になっているはずです。

ここに、追加したいテーブルの列に合わせたクラスをDataObjectsフォルダに作成します。
クイックスタート作成時に既存のTodoItemに倣って以下のように作成します。

using Microsoft.Azure.Mobile.Server;

namespace [YourProject].DataObjects
{
    public class Employee : EntityData
    {
        public string Name { get; set; }
    }
}

コントローラの追加

テーブルへアクセスするためのコントローラクラスを、Controllersに作成します。
Controllersフォルダを右クリックし、追加(D) -> コントローラー(T) を選択しますと、
スキャフォールディングを追加 画面が出てきますので、
Azure Mobile Appsのテーブル コントローラーを選んで進みます。

モデル、コンテキスト、コントローラー名(クラス名)を聞かれますので、
モデル:先ほど作成したテーブルクラス
コンテキスト:クイックスタートプロジェクトに既に存在しているコンテキスト
コントローラ名:デフォルト
として設定します。

ここで、追加をクリックすることで、コントローラクラスが生成され、
コンテキストファイルにもDbSet Employeesの定義が追加されます。

Azureへ公開

以上で最低限のコーディングは完了です。
Azureへ公開することで、コンテキストファイルに基づいてテーブルが自動で作成されます。

このあたりの仕組みはEntityFrameworkを調べることでより詳細がわかると思います。

参考

Entity Frameworkでの新しいデータベース向けのCode First