對於問題的緣故,我有一個項目結構如下,其中每個層映射到一個項目在我的視覺工作室溶液:跨項目的程序集引用 - 需要多個實體框架引用?
- 表示層
- 業務邏輯層
- 數據層(使用實體框架)
我在我的數據層中定義了存儲庫類。在BL層中實例化它們時,我得到一個錯誤,指出對實體框架程序集的引用缺失。我添加了一個對我在DL中使用的同一個實體框架dll的引用,它可以工作。
我的問題是:爲什麼BL沒有引用DL,爲什麼還需要在BL中添加一個「額外的」EF引用?我顯然不想在我的解決方案中控制多個EF版本。
我會認爲我的DL是一個「原子」單位,它的所有對象都是自包含的,並且不需要別的東西來正常工作。爲什麼在實例化DL中定義的類時,我仍然需要添加一個EF引用,DL具有哪個EF引用?
嗯...解決方案級nuget包...似乎我要學習一些有趣的感謝你;) – Veverke
雖然帶領我的解決方案,我會建議閱讀下面的文章更詳細的解釋:http ://blog.spinthemoose.com/2013/04/21/nuget-tip-3-manage-packages-at-the-solution-level/ – Veverke
不錯的發現,我把它添加到其他人的答案。 –