0

我開發了一個使用Code First Migrations構建數據庫的MVC5 Web應用程序。現在我正在嘗試開發一個移動應用程序(使用PhoneGap,如果有的話)作爲本地選項存在,以訪問應用程序的數據。但是,我很難找到數據庫很好地協同工作的方式。Windows Azure和MVC5 - 如何在桌面和移動版本中使用相同的數據庫模式?

理想情況下,我想完全使用相同的數據庫模式,只是讓應用程序和移動應用程序指向它。數據庫託管在Windows Azure上。我遇到的問題是使用Azure時,使用移動應用程序處理數據庫的標準方式是使用Azure移動服務。但是,當該服務創建數據庫時,它會創建自己的模式,該服務以該服務命名,而Web應用程序使用模式dbo。因此Users表格可能存在於dbo.Users的Web應用程序中,但在myAppName.Users中可能存在移動服務。

我已經探索過this solution,這似乎反映了我的問題。但是,還有一個問題。 .NET MVC5身份驗證服務使用dbo作爲默認模式,似乎無法更改該模式。底線,如果我使用默認模式,移動應用程序無法訪問數據庫,但如果我將表移動到移動服務模式,登錄/身份驗證失敗,因爲表中不存在默認模式了。

我在這裏錯過了什麼嗎?看起來讓一個Web應用程序和移動應用程序訪問同一個數據庫應該是一個相當普遍的任務,但我一直在調查這些好幾天而沒有找到解決方案。

感謝您提供的任何幫助。

回答

1

在Azure中爲移動應用程序使用數據庫的標準方式不是Azure移動服務。我的意思是,我不會稱之爲標準,而只是其中一個選項。

當Azure移動服務創建數據庫時,它不會使用自己的模式創建數據庫。 Azure移動服務沒有預定義的模式。你可以定義你自己的模式。唯一預定義的邏輯是添加azure移動服務承租人名稱作爲所有表名稱的前綴。這樣做是爲了幫助您在單個數據庫中託管多個Azure移動服務帳戶。如果您使用.NET編寫應用程序,則可以重寫此邏輯。我不確定如果您推出基於JavaScript的Azure移動服務帳戶,這是否可能。

我對你的建議是推出自己的ASP.NET Web API項目並將其託管在Azure中。您可以根據您的要求在Azure網站或雲服務中託管。在Azure中運行自己的API後,從網站或移動應用程序訪問API應該沒有問題。

希望這會有所幫助。

相關問題