2012-08-26 23 views
0

我正在嘗試使用MonoTouch + Mono爲Android實現客戶端 - 服務器解決方案。在MonoTouch和Mono中引用ADO.NET項目爲Android

對於服務器端,我使用的是ADO.NET實體模型。 AFAIK,這不是上述框架的一部分,但我的問題是:

我可以在客戶端中引用基於ADO.NET/EF4的(通用)ADO.NET/EF4數據層項目,只是爲了部分重用實體在客戶端?或者,這個架構問題有沒有不同的解決方案?

編輯:忘了說,對於客戶端,我正在考慮從POCO模板自動生成的POCO實體。

+0

如果你想引用這些實體,我會將它們從數據層項目中刪除,並將它們放入它們自己的獨立類庫(不含任何數據層技術 - 僅僅是類)。那樣,我相信你可以分享這個組裝! –

+2

找到了解決方案[這裏] [1],希望它可以幫助別人。 [1]:http://stackoverflow.com/questions/2464909/generate-poco-classes-in-different-project-to-the-project-with-entity-framework – ury

回答

1

做這樣的事情的一個好方法是在ADO.NET實體框架中採用代碼優先的方法。在服務器上創建實體併爲其構建DataContext實現後,請按照以下步驟將實體添加到您的Mono for Android項目(如果您使用的是Visual Studio)。

  1. 右鍵單擊單聲道的Android項目,並選擇添加現有項目
  2. 選擇要添加
  3. 點擊旁邊的打開按鈕的小箭頭,然後選擇鏈接的文件。

現在,當您編輯服務器項目或客戶端中的文件時,它們將保持同步。 請記住,您可以在實體中使用的一組屬性和API是有限的。要把事情做好,可能需要一點小事。

提示:使用部分類來添加特定於環境的行爲和數據。爲每個實體類添加第二個.cs文件,並將您不希望在客戶端上的任何成員添加到該文件中。客戶端功能只適用於您的應用,但不在服務器上。

當您在MonoDevelop的Mac上工作時,以上所有功能都可以使用。該應用程序還支持與.csproj文件位置不同的位置鏈接項目。

相關問題