2017-02-09 1 views
0

私はXamarin FormsとAzure Servicesを使って新しいモバイルアプリケーション用のWebサービス/バックエンドを構築しようとしています。私はこれに従いましたtutorialAzure Mobile Appにデータベースをデプロイできない

2つの関連する問題がある「Azure App Serviceにプロジェクトをデプロイする」セクションが表示されるまでは問題ありません。私は自分のDataObjectsと標準的な "ToDoList"アプリケーション(これは例として挙げられている)と同じ問題を抱えています。

  1. 私が最初に公開するときは、新しいデータオブジェクト/スキーマを新しいデータベースにプッシュするために、公開ウィザードの[設定]タブで[データベースの更新]を選択します。その後、私は公開をヒットし、私はエラーを返すSystem.Data.SqlClient.SqlException (0x80131904): Cannot attach the file '{LocalFilePath}\App_Data\{databaseName}.mdf' as database '{databaseName}'.私は、指定された "App_Data"フォルダに何もないことに気づいた、私はアプリサービスに公開する前に.mdfを構築するために何かをする必要がありますか?
  2. このエラーが発生し、データベースを再公開しようとすると、公開ウィザードに2つの違いがあります。最初に、私はもはや "データベースの更新"オプションを持っていない、私は "設定コード"最初のマイグレーションを実行するオプションが設定タブで、それは灰色です。次に、[プレビュー]タブに「公開するデータベースが選択されていません」と表示されます。

私は、App Serviceを介してデータベースを公開しようとしましたが、私はAzureとMobile App開発の初心者から分かりにくいものがあると思う。

  1. AzureポータルからMobile App Backend + Service + Databaseを作成し、Azure Portalから「QuickStart」プロジェクトを展開します。
  2. 上記のようなチュートリアルに従いますが、これは特に、デフォルトで挿入されるToDoListデータベーススキーマを公開するためのものです。これはtutorialでした。
  3. 上記のチュートリアルに続いて、チュートリアルで説明されているのではなく自分のカスタムDataObjectsを使用しています。

"Execute Code First Migrations"を利用できるようになっていますが、実際にはまだデータベースを展開することができませんでした。データベースが公開されるように選択されています "というメッセージが表示され、最初の失敗後に[データベースの更新]オプションが表示されません。私が行方不明になっていることは明らかですか?

答えて

0

私が初めて公開に行くとき、私は私の新しいデータベースに至るまで、私の新しいデータオブジェクト/スキーマをプッシュするために、公開ウィザードの「設定」タブの「アップデートデータベース」を選択します。次に、私はパブリッシュを打ちましたが、System.Data.SqlClient.SqlException(0x80131904):というエラーが返されました。 '{LocalFilePath} \ App_Data {databaseName} .mdf'というファイルをデータベース '{databaseName}'として添付できません。。私は指定された "App_Data"フォルダに何もないことに気付きました。アプリサービスに公開する前に.mdfをビルドするために何かする必要がありますか?次のように公式documentとして

は、Webの発行ウィザードでは約更新データベースを述べた:

あなたがWebの発行ウィザードで更新データベース]チェックボックスをオンにします。このチェックボックスは、アプリケーションがEntity Framework Code Firstコンテキストクラスを使用せずにアクセスするSQL Serverデータベースに対して表示されます。

ソースローカルDBは、あなたのアプリケーションを展開する前に作成されていない場合は、次のようにエラーになるだろう:

詳細については、あなたはdbDacFxのWebを参照してください可能性がありこのdocumentのProviderセクションを展開してください。

このエラーが発生し、データベースを再公開しようとすると、公開ウィザードに2つの違いがあります。まず、私はもはや "データベースの更新"オプションを持っていない、私は設定タブで "コードの最初のマイグレーション"オプションがあり、それは灰色で表示されます。第二に、[プレビュー]タブには、は、アプリケーションがEntity Frameworkのコードファーストコンテキストクラスを使用してアクセスするデータベースのために示されている(アプリケーションの起動時に実行されます)コードファーストマイグレーションを実行

を「いいえデータベースがパブリッシュするために選択されていません」と言います。

このオプションを選択すると、コードファーストでMigrateDatabaseToLatestVersionイニシャライザクラスが使用されるように、展開プロセスによってアプリケーションWeb.configファイルが自動的に宛先サーバーに構成されます。

パッケージマネージャコンソールでEnable-Migrationsコマンドを実行する場合は、このチェックボックスをオンにします。詳細については、documentエンティティフレームワークコードの最初の移行セクションを参照してください。

簡単な方法として、Azureポータルの「QuickStart」プロジェクトを活用して、まずEFコード経由でデータベースを移行することができます。プロジェクトを展開する場合、以下のように、VS公開Webウィザードでのターゲットデシベル(例えばアズールデシベル)「設定>データベース」の下のConnectionStringであなたの地元れたconnectionStringを更新:

提案のためそんなに
+0

おかげで、I私が家に帰るときに彼らに試してみましょう! –

+0

この問題は解決しましたか? –

+0

こんにちはBruce、はい、データベースの展開方法を理解できました。私はまだ種のデータにいくつかのエラーが発生しています(別のオブジェクトにオブジェクトのリストを添付しているので、いくつかの外部キーの問題が発生しています) - しかし、あなたの情報のおかげで、デプロイされたデータベース! –

関連する問題