我已使用此代码从连接获取提供程序名称和工厂:
public string GetFactory(IDbConnection connection) {
string provider = connection.GetType().Namespace;
return DbProviderFactories.GetFactory(provider);
}
不幸的是,这不适用于Sql Ce(精简版),因为它不包含版本信息。我认为这是安装同一驱动程序的多个版本时的一般问题。
Exmaple:上面的代码将使用提供程序" System.Data.SqlServerCe"但是DbProviderFactories.GetFactoryClasses()的真实姓名是" System.Data.SqlServerCe.3.5"。
我在连接上找不到任何与版本名称连接的提供程序版本属性。对于这个或另一个方法有什么解决方案吗?