我们有大量的数据库都共享相同的模式。它们分布在许多 SQL Server 上,一些是 2005 年,一些是 2008 年。在连接到 2005 年服务器后,我们首先连接到 2008 年服务器时遇到异常,说明如下:
更新条目时出错。有关详细信息,请参阅内部异常。更新条目时出错。有关详细信息,请参阅内部异常。正在使用的 SQL Server 版本不支持数据类型“datetime2”。
据我了解,正在发生的事情是模型是根据 2008 SQL 服务器提供程序信息创建的,因此当连接到 2005 服务器时,它不能使用 DateTime2 数据类型,因为那里不支持。
我们想针对 2005 服务器构建模型,但我不确定如何指定连接字符串和 DbCompiledModel。以前我有几个构造函数接受连接字符串(以及其他参数)......
public ProjectContext(string ConnectionString) : base(ConnectionString)
{
// Get the ObjectContext related to this DbContext
var objectContext = (this as IObjectContextAdapter).ObjectContext;
// ... does some stuff with the ObjectContext
}
如何为所有上下文(最小公分母)指定针对 2005 服务器构建的编译模型并指定连接字符串?我只是暂时没有办法做到这一点。
任何帮助,将不胜感激。
编辑:我们使用的是 Entity Framework 4.3 Code First,因此,没有设计时 EDMX 文件可供编辑。