这让我有点恼火,至少可以说...EF和一个装配多个SQL版本 - 这可能
我升级服务层项目,体验最新版本,并在这个过程中“将我所有的Linq升级到Sql模型到Entity Framework。到目前为止,我已经完成了四个数据库,现在正在运行测试 - 我的测试失败,出现错误
System.Data.MetadataException:指定的模式无效。错误: DB.WebDB.ssdl(2,84):错误0169:所有SSDL工件必须以相同的提供程序为目标。 ProviderManifestToken'2008'与之前遇到的'2005'不同。
做一些谷歌搜索我发现这通常是由不同的开发/活的SQL服务器版本引起的。
我的情况是不同的,但是 - 我有多个活动数据库服务器上运行不同的版本 - 2005年,2008年和2008 R2 - 我需要能够交谈的所有的人,用不同的EDMXs。
对此SO:Multiple Versions of SQL Server using Entity Framework in a single ASP.NET application看来,一种解决方案是将不同版本的EDMX分成不同的组件(即2005和2008版本)。据推测,另一个解决方案将迫使我的ProviderManifestToken
在2008年源数据库为2005
。然而,对我而言,我必须创建不同的程序集纯粹只是为了满足EF中的一个行为怪癖,可以让一个EDMX打破所有其他程序的想法是荒谬的 - 对我来说,单独的程序集是一个架构决策。同样地,黑客使用EDMX文件降级2008数据库也是不可取的,尤其是当下一次“从数据库更新...”命令将其再次更改时。
任何人有一个替代的解决方案?
好,吸住。好吧。 +1&acc即使它是坏消息:) –