在我們的應用程序中,我們將現有的DAL從EF 4.0升級到EF 5.0。
目前一個通用的存儲庫模式已經實現,我們使用POCO對象作爲商業實體。
這些對象使用WCF屬性進行裝飾,因爲它們通過Web服務接口傳遞,並使用部分類進行擴展,以便添加更多業務和驗證方法。此外,每個POCO實體都從基類「BusinessEntity」和接口「IBusinessEntity」繼承,以便輕鬆使用泛型庫方法。將實體框架(POCOs)對象中的業務對象分離的必要性?
我們正計劃將業務實體與POCO對象分離開來,以使後者成爲僅具有屬性且無邏輯的普通類。
然而,在閱讀了這個話題之後,似乎當前的技術狀態是採用代碼優先的方法並直接堅持域實體(即使當然不可能對所有情況進行概括)。
Related answer 1,related answer 2。
在我們的案例中,將POCO對象與業務邏輯保持在一起並僅應用與EF 5.0(DbContext)相關的更改是否合理?或者說,我們應該在資源庫中引入一個映射層?通過這種方式,應用程序可以在業務實體上工作,並且存儲庫層將從外部隱藏POCO對象。但缺點是複雜性的引入,特別是在處理通用存儲庫時。
在此先感謝。
我曾經有過類似的問題,可能有些答案可能對您有用:http://stackoverflow.com/questions/11521192/placement-of-dto-poco-in-a-three- tier-project – GrandMasterFlush
感謝GrandMasterFlush的發帖。但是,我可以問你使用哪種方法來映射來自POCO的業務對象嗎? (如果最後你有這個決定)。 – Francesco
我使用了由WCF服務調用的控制器類,它讀取了EF模型,並在用WCF屬性標記的POCO中傳遞了數據。由於這不是一個很大的網站,這似乎是有道理的。 – GrandMasterFlush