在开发中我们使用 SQL Server 2012,但有些客户的版本可能与 2005 一样旧。为了使实体框架数据模型与旧版本一起工作,必须将 ProviderManifestToken(在 edmx 文件中找到)设置为 2005。
现在我的问题是,这有什么副作用吗?我们注意到一些数据绑定(winforms)在我们更改它的同时中断,但这可能是巧合。那么,是这个,还是有任何其他负面影响可以改变这个值?
在开发中我们使用 SQL Server 2012,但有些客户的版本可能与 2005 一样旧。为了使实体框架数据模型与旧版本一起工作,必须将 ProviderManifestToken(在 edmx 文件中找到)设置为 2005。
现在我的问题是,这有什么副作用吗?我们注意到一些数据绑定(winforms)在我们更改它的同时中断,但这可能是巧合。那么,是这个,还是有任何其他负面影响可以改变这个值?
ProviderManifestToken 主要在 Sql Generation 期间使用,以确保生成的查询将在目标版本的数据库上工作。因为如果适用于以前版本的 Sql Server 查询应该继续在当前版本上工作,这应该不是问题。因此,总的来说,您所做的应该可以工作,因为您将向 Sql 2008/2012 数据库发送 Sql 2005 查询。我对绑定知之甚少,但在我看来,它似乎不太可能是由于使用 2005 作为 ProviderManifestToken 而引起的。我看到一些惊喜的场景是,当您将清单令牌从 2005 年更改为 2008 年(基本上是升级数据库和应用程序)时 - 混淆主要围绕 datetime/datetime2 (AFAIR datetime2 类型可能突然出现在查询中)