2010-11-18 132 views
2

在我的新項目中,我被要求使用ADO.NET實體框架和WCF服務。我對此很感興趣,但是當我研究並研究了幾個樣本時,我發現使用Entity框架實體的想法與WCF契約相當混亂。 所以想知道這是什麼一般的意見。我研究了持久性無知,並在4.0版本中對POCO支持進行了一些研究,但不知何故我們無法將此項目移至4.0。 在3.5中也有PI嗎?有沒有我可以學習的樣品。我嘗試過實現POCO適配器,但Codeplex上提供的示例太混亂,無法在Web應用程序中實現。.NET 3.5框架中的ADO.NET實體框架和WCF

我的總體觀點是將DataContracts和實體框架創建的實體分開。如何可能或使用Ado.net實體作爲合同是3.5中的唯一選項。

+0

你真的想使用V4.0,而不是以前的版本(3.5 SP 1)條與存儲過程的實體框架的使用。我非常確定EFv1不支持POCO實體,但我可以通過EFv1和WCF保證一個痛苦的世界。 – RobS 2010-11-18 16:05:34

+0

@RobS,3.5中支持WCF數據服務。他們不是「一個痛苦的世界」。他們非常容易。 – 2010-11-18 16:13:27

回答

2

你可能想看看這個EF Poco Adapter實體框架v1.0。它特別適用於實體框架實體的持久性忽略。至於使用它與WCF,你可能會或可能不能將它與WCF數據服務,我還沒有探討這一點。

其實,你可以通過WCF數據契約暴露POCO實體:

「實體框架V1編程 接口包裹着 與POCO POCO之間工作 對象,並做必要的翻譯 相應的API Persistence-Aware objects。「

因此,您只需連接服務端的數據訪問接口(顯然),EF Adapter將爲您處理映射到持久感知版本。

+0

我試着實現POCO適配器,但不知何故無法實現它的Web應用程序,得到各種各樣的錯誤:(我沒有真正的想法WCF數據服務,但也會考慮到這一點以及 – 2010-11-18 16:47:16

+0

您好Kunal。 d嘗試在數據約定定義中使用POCO對象,然後使用適配器將它們映射到Web服務實現(或其他層)中的實際EF類型。對不起,我之前沒有使用此適配器,我升級到了v4對於新的POCO支持,在它成爲問題之前 – RobS 2010-11-18 16:51:21

+0

您是否真的嘗試了這個?您擔心數據服務令人痛苦,並且您建議使用EF 1 POCO適配器?!? – 2010-11-18 17:41:28

-3
+0

沒有冒犯意味着克雷格,但我不認爲這個答案很大程度上解決了OP的問題。 WCF數據服務如何幫助持久性忽略和解耦合同/實體/上下文? – RobS 2010-11-18 16:33:08

+0

@RobS,他問如何在WCF服務中使用EF實體。在我看來,他認爲POCO是達到此目的的一種手段。但它不是唯一的手段。 WCF數據服務很簡單。 EF 1中的POCO是痛苦的(但不是在EF 4中)。 – 2010-11-18 17:39:25