【发布时间】:2013-09-26 21:25:00
【问题描述】:
我正在使用一个使用实体框架访问 mysql 数据库的简单守护程序。 该解决方案包含两个项目:
- Test.Daemon
- Test.DataAccess
Test.DataAccess 将包含所有用于代码优先的类,还包含一个派生自 DbContext 的类 TestDbContext
- EntityFramework 5 是通过 NuGet 为
Test.DataAccess安装的 -
Test.DataAccess在Test.Daemon中被引用
现在,当我尝试在 Test.Daemon 中使用以下内容时,它抱怨缺少对 EF 的引用:
TestDbContext ctx = new TestDbContext();
产生的错误: “System.Data.Entity.DbContext”类型是在未引用的程序集中定义的。您必须添加对程序集 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'的引用
只要我在Test.Daemon 中引用 EF,代码就可以正常工作。
为什么只引用包含派生类的项目并且本身具有对其派生类的引用是不够的?
【问题讨论】:
-
为什么?因为它不是这样设计的。
-
所以你告诉我在我的具体情况下没有办法解决这个问题?
-
你为什么需要一个“解决办法”呢?只需添加正确的引用。
-
这不是问题;这是一个要求。您必须在使用您的实体数据模型的任何可执行文件中引用实体框架。就像它的设计方式一样。
-
好吧,我的意图是尽可能保持整个项目的整洁,我的理解是,如果派生类本身引用其父类,则引用派生类就足够了。显然情况并非如此-感谢您的澄清。柯克,您应该将此添加为简要阐述的答案,以便我可以将其标记为解决方案
标签: c# entity-framework