【发布时间】: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 获得的更改可能不会。
想法?
【问题讨论】:
标签: .net assemblies sql-server-ce versioning