【问题标题】:System.InvalidProgramException Invalid IL code in System.Data.Objects.ObjectContext:.ctor (string,string): method body is emptySystem.InvalidProgramException System.Data.Objects.ObjectContext:.ctor (string,string) 中的 IL 代码无效:方法主体为空
【发布时间】:2012-12-09 11:01:00
【问题描述】:

我在树莓派上使用 mono(3.0.3)。除实体框架外,一切正常。我可以毫无问题地登录到我的网站,但是当我进入一个有实体框架的区域时,我在 XSP 中收到以下错误:

Application Exception
System.InvalidProgramException
Invalid IL code in System.Data.Objects.ObjectContext:.ctor (string,string): method body is empty.

Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): AdwenModel.
Exception stack trace:
  at AdwenModel.AdwenEntities1..ctor (System.String connectionString) [0x00000] in <filename unknown>:0 
  at AdwenWeb.App_Code.AdwenConnection.getDataContextAdwen () [0x00000] in <filename unknown>:0 
  at AdwenWeb.Management.overview.createObjectTable () [0x00000] in <filename unknown>:0 
  at AdwenWeb.Management.overview.Page_Load (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Web.UI.Control.OnLoad (System.EventArgs e) [0x00029] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Control.cs:1211 
  at System.Web.UI.Control.LoadRecursive () [0x00031] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Control.cs:1641 
  at System.Web.UI.Page.ProcessLoad () [0x0004a] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Page.cs:1490 
  at System.Web.UI.Page.ProcessPostData () [0x0004d] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Page.cs:1475 
  at System.Web.UI.Page.InternalProcessRequest () [0x001bf] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Page.cs:1442 
  at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00062] in /opt/mono-3.0/mono/mcs/class/System.Web/System.Web.UI/Page.cs:1269 
Version Information: 3.0.3 (master/c1b505c Thu Dec 6 09:17:47 UTC 2012); ASP.NET Version: 4.0.30319.17020

真的不知道还有什么问题。

【问题讨论】:

    标签: entity-framework mono raspberry-pi


    【解决方案1】:

    我对 Mono 中的实体框架支持知之甚少,但我所知道的是它们在 Mono 中包含了 EF6,并且 System.Data.Objects 不再是 EF6 中 ObjectContext 的命名空间。无论是什么导致失败,都应该寻找 System.Data.Entity.Core.Objects.ObjectContext。

    希望这会有所帮助。

    【讨论】:

    • 是的,你是对的! Mono 团队只说:从 Mono 2.11.3 开始,微软的开源 EntityFramework 是 Mono 发行版的一部分。链接:mono-project.com/EntityFramework 他们没有指定任何其他内容!我必须进入万维网的地牢才能找到答案。可以在此页面上详细说明。
    • 您找到错误引用 System.Data.Objects 命名空间的代码了吗?我对异常的唯一猜测是现有的开源代码形式 MVC 和 EF6 已逐字包含在 Mono 中,并且 MVC 代码库依赖于 EF5(它不是开源的,也不包含在 Mono 中)尚未考虑。
    • 如果引用 System.Data.Objects 命名空间的代码是您项目的一部分,您可以简单地编辑命名空间以反映 EF6 中的新位置,例如DbContext 和 Code First API 仍然在与以前相同的命名空间中,位于 System.Data.Entity 下,但最初包含在 .NET 中的大多数其他 API 已移至 System.Data.Entity.Core 下。
    • 我今天尝试了一些方法,比如升级到 Visual Studio 2012 和 .NET Framework 4.5。但这并不顺利。我的整个解决方案与 VS2012 不兼容。而在 VS2010 中,我无法以 .NET 4.5 为目标。我认为以 4.5 为目标将是找到正确程序集的更好解决方案。但我现在几乎被困住了。
    • 实际上 EF6 包括 .NET 4.0 和 .NET 4.5 的构建。两者的主要区别在于 .NET 4.5 版本包含了新的异步 API 和 System.ComponentModel.DataAnnotations.dll .NET 4.0 中缺少的 DataAnnotations 定义。我不知道 Mono 是否需要使用 Visual Studio 2012,但我知道 EF6 不需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多