【问题标题】:CLR detected an invalid program with Entity FrameworkCLR 检测到带有实体框架的无效程序
【发布时间】:2012-10-08 23:18:14
【问题描述】:

我正在从将主键定义为decimal 的 wordpress 数据库中检索数据,并且我在项目中使用 x64 配置...

我搜了一下发现是问题所在,但是没找到解决办法。

我必须做什么/下载才能使用decimal 作为主键?

This issue on Microsoft Connect

【问题讨论】:

    标签: c# entity-framework clr 64-bit invalidprogramexception


    【解决方案1】:

    我遇到了同样的问题,今天我通过在 DBContext 对象中将这两个选项设置为 false 来解决它:

    this.ContextOptions.LazyLoadingEnabled = false;
    
    this.ContextOptions.ProxyCreationEnabled = false;
    

    这似乎是代理创建的序列化问题。

    我首先尝试将我的类型映射到 EDMX 文件中的 Int32,但这给了我非常低的性能。

    【讨论】:

      【解决方案2】:

      如果您只是从表中读取数据,您可以尝试创建一个将字段转换为 int 的视图,然后将您的实体映射到该视图。

      除此之外,我认为你很不走运。这是实体框架中的一个错误;要么更改字段类型,从 EF 切换,要么等待 MS 修复错误。

      【讨论】:

        【解决方案3】:

        您是否尝试过 Entity Framework 4.1 Release Candidate?该错误被标记为已修复一个月左右。

        【讨论】:

        • 我遇到了同样的问题。但我刚刚用 EF 4.3 进行了测试,它仍然是同样的问题:/。而且我无法更改源数据库
        【解决方案4】:

        我遇到了同样的问题,很遗憾地说:微软仍然没有修复它。我尝试了 EF 4.1 和 EF 5.0,但它们不包含任何解决此问题的方法。

        到目前为止,唯一的解决方法是将所有十进制主键更改为 Int64。当然,这是数据库模式的变化,这不是您想要的。另一种选择是使用 32 位环境,该错误仅存在于 64 位中。

        PJ 对https://connect.microsoft.com/VisualStudio/feedback/details/620031/invalidprogramexception-using-entityframework-poco-template-table-w-decimal-primary-key 的评论(2011 年 11 月 11 日上午 11:46)听起来完全没有希望,也许它甚至在 .NET 4.5 中都没有修复

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-12
          • 1970-01-01
          • 2019-06-15
          • 2015-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-18
          相关资源
          最近更新 更多