【发布时间】:2013-07-17 15:57:32
【问题描述】:
使用 .NET Web API(.NET 4、EF 4),我在调试时遇到了一些奇怪的错误,真的不知道发生了什么。
说在DocumentRepository我有这个构造函数:
public DocumentRepository(DocPortalContext db)
{
this._db = db;
}
如果我调试并将鼠标悬停在 _db 上并深入了解弹出窗口中的项目,我会遇到以下错误:
System.Data.Entity.Infrastructure.IObjectContextAdapter.ObjectContext = 'System.Data.Entity.DbContext' 不包含 'System' 的定义,并且没有扩展方法 'System' 接受类型为 'System.Data 的第一个参数.Entity.DbContext' 可以找到(您是否缺少 using 指令或程序集引用?)
和
System.Collections.Generic.ICollection>.IsReadOnly = 'System.Collections.Generic.Dictionary' 不包含“System”的定义,也没有接受“System.Collections”类型的第一个参数的扩展方法“System”。通用字典
没有发现异常。
如果我在存储库方法中的这一行上放置一个断点 - return _db.Documents.AsQueryable(); - 并将鼠标悬停在 Document 上,我会收到以下错误:
System.Linq.IQueryable.Provider = 'System.Data.Entity.Infrastructure.DbQuery' 不包含“System”的定义,并且没有扩展方法“System”接受“System.Data.Entity”类型的第一个参数.Infrastructure.DbQuery' 可能是 f...
我们将不胜感激。
其他信息:
以下列方式钻入_db 会在末尾给出引用的消息:
base(System.Data.Entity.DbContext) -> Internal Context -> _appConfig -> 最后默认连接工厂旁边有以下错误“评估的函数需要所有线程运行。”
根据我的评论了解更多信息:
这实际上与问题无关,但它让我认为我的 .NET 或 VS 安装可能有问题 - 我对进行该调用的管道了解不足,也许你们中的一个能够。无论如何,我可以浏览到我的 WebAPI 项目中的 URI 并在浏览器中返回 JSON。当我尝试在我的网站项目中使用 URI 时,我在浏览器中得到了这个:Could not find file 'C:\Program Files (x86)\IIS Express\System.Net.Http.StreamContent'.,这也被捕获为异常。
【问题讨论】:
-
你在类的标题中有
using System.Linq吗? -
是的,它正在被引用。
-
是的,这很奇怪,因为这些看起来像是编译器错误,而不是运行时错误。尝试进行清理并重建。也许 pdb 和您的代码之间出现问题,导致调试期间出现问题。
-
刚刚进行了清理和重建,调试时出现了同样的错误。
-
'System.Data.Entity.DbContext' 不包含 'System' 的定义
标签: c# asp.net-mvc entity-framework asp.net-mvc-4 asp.net-web-api