2008-09-16 145 views
7

我已經使用實體框架來啓動一個相當簡單的示例項目。在該項目中,我從SQL Server 2000數據庫創建了一個新的實體數據模型。我能夠使用LINQ to Entities查詢數據並在屏幕上顯示數值。我有一個非常類似架構的Oracle數據庫(我想確切地說,但我不知道Oracle的所有細節)。我希望我的項目能夠以最小的努力在SQL Server和Oracle數據存儲上運行。我希望我可以簡單地改變我的實體數據模型的配置字符串,實體框架將負責其餘部分。但是,似乎無法像我想的那樣無縫工作。如何使用實體框架實現數據庫獨立性

有沒有人做過我想要做的事情?再次,我試圖編寫一個應用程序,可以使用實體框架以最小的努力查詢(和更新)來自SQL Server或Oracle數據庫的數據。次要目標是在數據存儲之間來回切換時不必重新編譯應用程序。如果我必須「更新模型從數據庫」可能是好的,因爲我不必重新編譯,但我寧願不必去這條路線。有誰知道任何可能需要的步驟?

+2

大聲笑如果它不提供數據庫的無知,什麼是實體框架的好處?哎呀! – Sklivvz 2008-09-16 22:43:06

回答

2

術語「持久性無知」通常理解的是您的實體類沒有充斥着框架依賴關係(對於N層方案很重要)。目前情況並非如此,因爲實體類必須實現某些EF接口(「IPOCO」),而不是普通的舊CLR對象。正如另一張海報所提到的那樣,有一個解決方案稱爲Persistence Ignorance (POCO) Adapter for Entity Framework V1,EF V2將支持POCO開箱即用。

但我認爲你真正想到的是數據庫獨立性。通過一個包含存儲模型,概念模型以及在設計時將生成類型化ObjectContext的兩種映射之間的大配置XML,我也很難想象如何透明地支持兩個數據庫。

可能看起來更有前途的是應用獨立於數據庫的ADO.NET提供程序,如DataDirect。 DataDirect還宣佈了EF 2008年第三季度的支持。