1

我在解决方案中有许多项目。其中一个项目,称为 MyDAL,定义了许多业务对象并使用 Entity Framework 通过

public class MyContext : DbContext

我刚刚在解决方案中添加了一个新项目,却忘记引用实体框架。

MyContext仍然可用!没有编译错误(我想我会收到一个编译器错误,告诉我我缺少对定义 DbContext 的程序集的引用)。

我可以在MyContext. 然而,

using (MyContext ctx = new MyContext())

给出编译器错误

'MyNs.MyContext':在 using 语句中使用的类型必须隐式转换为 'System.IDisposable'

ctx.SaveChanges();

给出错误

“MyNs.MyContext”不包含“SaveChanges”的定义,并且没有扩展方法“SaveChanges”接受...的第一个参数

就好像编译器默默地改变了一样

public class MyContext : DbContext

public class MyContext : object

我知道如何解决错误(添加缺少的引用),但我很好奇为什么在我开始引用 DbContext 的方法和接口之前首先编译的代码。

4

0 回答 0