簡體   English   中英

為什么我們需要將類庫項目繼承的程序集的引用添加到使用者項目中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM