2012-11-29 68 views
1

在EF的代碼優先實現中,與存儲庫模式一起使用時,存儲庫是否應返回域模型的業務對象或數據模型中的簡單實體?實體框架實體與業務對象的存儲庫模式

從我所知道的,Repository的意義在於返回業務對象,而不是實體,以便您可以與它們一起工作。但我發現的大多數代碼示例都是返回數據模型,這對我來說似乎是個不好的主意,因爲如果數據源發生更改,該怎麼辦?

回答

1

如果您使用CodeFirst開發,您也可以輕鬆地將您的業務對象用作數據模型。您可以在單獨的DLL中編寫Ef映射以刪除EF對業務模型的依賴關係。如果您想將數據源更改爲另一個而不是EF,則可以保留相同的Business(域)類。

+0

謝謝。爲了讓我認識到這是代碼優先的一個重點,我多花了一些時間閱讀。 – devlord

+0

這是否需要您的數據層引用您的域模型?這是控制反轉嗎? – devlord

+1

這不是控制的倒置,但它似乎是域驅動的設計。您首先設計了業務邏輯和持久性/數據層中共享/常用的領域模型。 –