Unable to find the requested .Net Framework Data Provider. It may not be installed. at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
The specified store provider cannot be found in the configuration, or is not valid.
at System.Data.EntityClient.EntityConnection.GetFactory(String providerString)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName)
这是一个Windows服务程序,连接字符串是对的,但是在构造ObjectContext时就报错了。
The specified store provider cannot be found in the configuration, or is not valid.
要么服务器上没有相应的Provider,要么就是配置连接字符串错了。
<add name="DefaultContext" connectionString="metadata=res://*/SJLDDB.csdl|res://*/SJLDDB.ssdl|res://*/SJLDDB.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=ORCL;PASSWORD=sjlddb;USER ID=SJLDDB"" providerName="System.Data.EntityClient" />
Provider指的是Oracle.ManagedDataAccess.Client,对应的dll也引用了。
我这边服务器上还有个web程序同样的连接配置却没问题
@传说的青蛙: 有可能那个程序里面的文件夹有相应的DLL,而你这个里面没有。
下载安装Oracle Data Access Components (ODAC):
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
也可以通过nuget安装:
别乱说哦 EF链接Oracle 有专门的驱动 安装的
装好之后选就好了 跟链接SQL一样 不过选得是orcl 印象不深了
其次 如果项目中需要用到 比如说 类库A 创建EF链接 数据库 项目B 要使用 请在项目B的配置文件中 拷贝 类库A 链接数据库的那段字符串
链接oracle是需要安装ODAC驱动的 不然你根本无法打开oracle 其它操作和sql没太大的区别