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