2011-11-23 74 views
0

我目前正在開發Windows服務,並且我期望在運行時使用MEF構建所有服務組件。數據訪問模塊(項目)使用實體框架4.1和域服務類對實體模型執行CRUD操作。使用MEF與其他項目共享實體框架模型

我遇到的問題是如何在將DAL組合到主項目的工作人員類中時共享DAL項目之外的模型。

對於〔實施例,這是在DAL合同接口

Function GetInspectionFaults() As IQueryable(Of InspectionFault) 

此接口是目前在DAL項目(不包含其他合同接口的共享/引用的項目),因爲它需要的引用的方法之一POCO類型的實體模型。

如何分享這些POCO類型?

菲爾

回答

1

雖然它可能是更多的工作,你可能要考慮有一組獨立的模型,你在一個共享程序集有(視圖模型,如果你願意)(也許一個共同的/合約總成)。這將使您的零件能夠使用一組通用的不依賴於DAL的類型。

關於問題的分離,我不建議直接導出DAL,而是通過類似Repository模式的方式提供抽象。存儲庫將處理與DAL的通信以及從您的域到視圖模型的映射。

您可以在任何需要的位置導出和導入存儲庫,這意味着您的零件不依賴於特定的數據源。這使得你的代碼更健壯,更可測試。