[英]Why do we need to add a reference to an assembly, from which a class library project inherits, into a consumer project?
我的解決方案包括兩個項目:
DataAccess
),它定義了一個繼承自DbContext
的類(名為MyContext
)。 由於在EntityFramework.dll
程序DbContext
定義了DbContext
,我需要將此程序集的引用添加到此類庫項目中。 我對這個機制沒有混淆。 Tester
),它使用DataAccess
類庫中定義的DataAccess
類。 添加對上面類庫的程序集的引用是可以理解的。 不幸的是,在我將EntityFramework.dll
的引用添加到此控制台應用程序之前,我無法編譯解決方案。 為什么我們需要將類庫項目繼承的程序集的引用添加到使用者項目中? 在我的心智模型中,僅將DataAccess
項目程序集的引用添加到Tester
項目中就足夠了,鏈接引用應該自動完成。
因為在構建項目時, EntityFramework.dll
不會被復制到輸出目錄,並且您的庫將無法訪問它。
如果您能夠將EntityFramework.dll
嵌入到庫中(右鍵單擊引用 - >屬性),則無需在控制台應用程序上引用它。
因為MyContext
的很多行為都是從實體框架中的基類繼承而來的。 如果從Tester
調用這些方法(例如SaveChanges()
), Tester
應用程序需要引用定義方法的類庫。
如果您只訪問在MyContext
中定義的MyContext
方法,我認為您可以不使用對基類的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.