我們目前正在開發將在Windows Azure平臺上託管的SAAS應用程序代碼名稱FinAcuity,主數據庫將爲SQL Azure。Windows Azure/SQL Azure實體框架中的動態數據庫/架構
下面是我們產品的一些技術參數:
- 開發環境 - Asp.Net 4.0 MVC 3(剃刀),實體框架
- 數據庫 - SQL Azure的
這裏我們的業務案例:
- 我們的產品是一個SAAS產品,而且它將包含財務Da我們將爲每個客戶端提供單獨的數據庫以實現更高級別的多租戶,數據隔離&安全。
- 現在客戶可以在其賬戶下創建多個公司,這些公司將由Schemas根據特定的客戶數據庫分隔。
注:表格結構對於每個模式都是相同的。
以下是一些場景,可以讓您更深入地瞭解我們的應用程序流程。
方案1:
- 要提供在客戶端註冊新的數據庫,我們要運行存儲過程,將創建數據庫的基本結構。
- 我們懷疑:在SQL Azure上這樣做的正確方法還是有其他方法嗎?
方案2:
- 對於下客戶數據庫訪問多個模式,我們已經動態生成各個模式SSDL文件和用於該文件進行連接。
- 我們懷疑:有沒有其他方式來做到這一點,比如對多個連接使用相同的SSDL文件實例並傳遞元數據進行連接?
方案3:
- 隨着我們的應用程序支持即席查詢和Excel文件的動態創建表,我們將提供將在後臺運行存儲過程,並創建嚮導該表從Excel文件動態從頭文件選擇嚮導在特定架構下的客戶端數據庫。
- 我們的懷疑:如果有的話,建議我們更好的方法嗎?
方案4:
- 現在作爲新表添加到模式,我們必須更新EDMX文件從該新創建的表中獲取數據。爲此,我們將運行將從新創建的表中獲取數據的存儲過程。
- 我們懷疑:有沒有更新EDMX文件運行時和獲取數據的方法?
需要針對上面列出的每種情況的最佳解決方案提供建議。
預先感謝您。
最好的問候 - 薩赫勒
你要分這個分離約EF和SQL Azure的問題。順便說一句。方案4超出了EF的範圍 - 您將不得不直接使用SQL /存儲過程來查詢動態表而不使用EF。 – 2012-07-30 09:28:48