SQL Compact 3.5 SP2 CU2 实体框架问题
Posted
技术标签:
【中文标题】SQL Compact 3.5 SP2 CU2 实体框架问题【英文标题】:SQL Compact 3.5 SP2 CU2 Entity Framework Problem 【发布时间】:2011-04-07 21:59:56 【问题描述】:我们最近从使用 SQL CE 3.5 SP2 RTM(文件版本 3.5.8080)转移到累积更新 2 (3.5.8082),并开始遇到实体框架(来自 .NET 3.5)无法加载系统的问题.Data.SqlServerCe.Entity.dll。
我们得到的错误是:
System.Data.MetadataException:指定的架构无效。错误: MyData.ssdl(2,117):错误 0004:无法加载 System.Data.SqlServerCe.Entity.dll。重新安装 SQL Server Compact。
我不确定实体框架如何根据 ADO.NET 提供程序确定要加载的实体框架提供程序。一个有趣的消息是 System.Data.SqlServerCe.dll 的 CU2 副本的程序集版本是 3.5.1.0(与 RTM 没有变化),而 System.Data.SqlServerCe.Entity.dll 的程序集版本是 3.5.1.5。我不知道是不是这个问题,但它看起来很奇怪。
SSDL 文件中引用的行是指定 ADO.NET 提供程序 (System.Data.SqlServerCe) 的行。它没有在我能看到的任何地方引用 EF 提供程序。
如果我简单地将 System.Data.SqlServerCe.Entity.dll 替换为 RTM 的版本,事情就会重新开始工作。然而,这让我很担心,因为我可能需要从 CU2 获得的更改可能不会。
想法?
【问题讨论】:
【参考方案1】:这实际上是我使用 CU 安装程序创建的公共和私有程序集组合的结果。
我发现了有关 SQL CE Private 安装工作原理的精彩概述。有道理,它解决了我所有的问题:
http://www.codeproject.com/KB/database/SQLCEPrivateInstallation.aspx
我还写了一篇关于这个问题的博文: http://www.robertdowney.com/post/2011/04/13/Trials-and-Tribulations-with-SQL-Server-Compact-Edition.aspx
【讨论】:
【参考方案2】:我怀疑是否有任何变化,您可以使用 Reflector/WinMerge 来查找。但这听起来像一个错误。你能分享你的 app.config 吗?也许绑定重定向问题已被静默修复。
【讨论】:
以上是关于SQL Compact 3.5 SP2 CU2 实体框架问题的主要内容,如果未能解决你的问题,请参考以下文章
LINQ2SQL 与 MS SQL Server Compact 3.5 SP2:BadImageFormatException
Sql Server CE 3.5 和 .NET Compact Framework 2.0 SP2
MS Sync/SQL Server Compact 代码在最新版本 SQL Compact 3.5 中失败