2010-11-12 59 views
5

我有一個客戶端應用程序(WPF,C#,.net4),它使用通過SQLITE提供程序連接的POCO實體模型。所以我想要在一個asp.net項目(包含MSSQL提供程序)中使用該項目中的相同實體,以便在那裏使用我在客戶端應用程序中使用的相同實體。我想在使用Web服務的相同poco模型的客戶端應用程序(SQLITE)和Web服務器(MSSQL)之間創建某種複製功能。一個POCO模型與不同的數據提供者

所以我有兩個項目中的實體模型參考edmx文件不同的連接字符串。在這種情況下(因爲EDMX編譯SQLite的供應商)當我試圖使用mssql的數據提供者我得到一個異常:

無法施展System.Data.SqlConnection到System.Data.SQliteConnection

所以我的問題是如果有可能在一個實體模型中使用不同的數據提供者? 在不同的項目中使用相同模型的最佳方式是什麼?

回答

1

如果我正確理解你的問題,那麼如果你正在尋找EF模型來支持多個數據庫實現,那麼這是不可能的。由EF自動生成的SSDL文件將包含提供程序特定的元數據,因此將限制它與您正在使用的不同數據庫實現的獨立性。

有一些articles提供瞭解決這個問題的方法,但是這需要爲每個提供程序分別創建一個模型副本,然後使用提供者詳細信息對生成的XML進行黑客入侵。

+0

cpedros,謝謝 - 這正是我所需要的:),現在我爲兩個提供者都獲得了一個模型 – DolceVita 2010-11-19 21:15:43

0

與POCO它應該是可能的。 只要Web服務傳遞XML或JSON數據,它就不會綁定到任何特定的數據連接器實現。我不確定在二進制模式下會是什麼 - 可能有一些鏈接到數據模型。 您是從WPF應用程序還是從Web服務獲取此錯誤?這聽起來像你試圖測試這個內部客戶端應用程序。你有沒有嘗試實現Web服務?