2012-12-26 57 views
0

我在搞EF4.1。我想保持我的域名和我的DAL分開。我的域包含基本的實體類和存儲庫的接口。 DAL包含這些存儲庫的實現。在實體框架中分離DAL和域?

我的問題是,我必須編輯我的域以使用EF。例如,具有「地址」的「人」現在具有「AddressId」和「虛擬地址」。我現在還在我的域圖層中保留註釋。我對此並不滿意,因爲這意味着我正在改變我的應用程序的核心以使用EF。我也介紹了不相關的數據,因爲地址不需要在我的應用程序中使用ID;只在數據庫中。如果明天我寫一個新的DAL層,從Web服務或XML文件或其他東西獲取對象,會怎樣?

有沒有辦法解決這個問題?我正在考慮將EF實體保留在DAL層中,並將它們映射到存儲庫中的我的域類,但這不會是一個巨大的性能影響嗎?

回答

1

我沒有看到將DAL中的EF實體和您的存儲庫放在別的地方,更不用說將這些EF實體轉換爲域類會產生不可避免的性能影響。

相反,您可能需要考慮使用EF Fluent API,如herehere所示。然後,您可以將DbContext類放入您的DAL中,將所有Fluent映射放在那裏,並讓您的域類保持乾淨和閃亮。

+0

感謝您的鏈接!它可能工作。別擔心,實體和存儲庫保持在一起,但現在我可以將EF保留在我的域中。 –

+0

沒問題。那麼不要忘記標記這個答案。 – IronMan84

相關問題