【发布时间】:2012-10-08 23:18:14
【问题描述】:
我正在从将主键定义为decimal 的 wordpress 数据库中检索数据,并且我在项目中使用 x64 配置...
我搜了一下发现是问题所在,但是没找到解决办法。
我必须做什么/下载才能使用decimal 作为主键?
【问题讨论】:
标签: c# entity-framework clr 64-bit invalidprogramexception
我正在从将主键定义为decimal 的 wordpress 数据库中检索数据,并且我在项目中使用 x64 配置...
我搜了一下发现是问题所在,但是没找到解决办法。
我必须做什么/下载才能使用decimal 作为主键?
【问题讨论】:
标签: c# entity-framework clr 64-bit invalidprogramexception
我遇到了同样的问题,今天我通过在 DBContext 对象中将这两个选项设置为 false 来解决它:
this.ContextOptions.LazyLoadingEnabled = false;
this.ContextOptions.ProxyCreationEnabled = false;
这似乎是代理创建的序列化问题。
我首先尝试将我的类型映射到 EDMX 文件中的 Int32,但这给了我非常低的性能。
【讨论】:
如果您只是从表中读取数据,您可以尝试创建一个将字段转换为 int 的视图,然后将您的实体映射到该视图。
除此之外,我认为你很不走运。这是实体框架中的一个错误;要么更改字段类型,从 EF 切换,要么等待 MS 修复错误。
【讨论】:
您是否尝试过 Entity Framework 4.1 Release Candidate?该错误被标记为已修复一个月左右。
【讨论】:
我遇到了同样的问题,很遗憾地说:微软仍然没有修复它。我尝试了 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 中都没有修复
【讨论】: