2012-06-21 186 views
0

我將創建一個由2個模塊組成的應用程序。ASP MVC 3服務器端WP7客戶端應用程序

  • 基於asp mvc 3服務的服務器端。這應該是從一個sql server數據庫提供數據到一堆WP7客戶端。
  • 客戶端在WP7上。這個應該從服務器檢索數據並將其存儲在本地數據庫中。

我想這兩個應用程序只有一組模型是個好主意,我想使用實體框架。

我考慮了以下方法:

把這些2個項目上的一個解決方案。在服務器端應用程序生成實體框架模型形成一個SQL Server數據庫。在兩個應用中都使用它們。

服務器上的服務應該使用模型來檢索數據,並將它們作爲oData xml返回。 WP7應用程序應該抓住這個oData XML並使用相同的模型將其存儲在本地數據庫中。

我從來沒有做過類似的事情,所以我不確定是否是一個好方法。它會起作用嗎?任何評論贊賞。

編輯

我已經有一個工作服務返回的數據。我還創建了一個抓取數據的測試SL應用程序。我使用服務器應用程序中的實體框架模型。下一步是創建一個WP7應用程序,將數據抓取到實體框架模型(與之前提到的SL應用程序相同)。

在這裏你可以看到我是如何通過服務創造的讀取方面:

svc = new BlogContext(new Uri("/BlogService.svc", UriKind.Relative)); 
var q = svc.Blogs; 

但仍有我不知道如何解決問題。如何創建一個上下文來寫入WP7本地數據庫?

+0

持久實體對象在一個單獨的服務器?據我記得,這實際上是不可能的... –

+0

@JeremyHolovacs不,這不是我的意思。我只想讓這兩個項目共享相同的模型類並通過oData服務發送「對象」。 – gisek

回答

0

是的,它可以工作;我在我的一個應用程序中做了非常類似的事情(儘管交換了一個JSON/OAuth API的oData)

+0

我更新了問題。你可以看看嗎? – gisek

0

您可能想使用類似Project Linker的東西來獲得多目標解決方案,因爲庫不能在Silverlight (WP7)和服務器(.NET)。

堅持使用POCO類,並專門使用EF POCO類模板。僅在服務器上使用EF模型。我不認爲你可以在Silverlight中使用DataAnnotations,所以你可能需要推出自己的驗證。