我正在尝试使用Oracle 11g Express和.NET 4.0框架开发ASP.NET MVC 4.0应用程序。我可以使用ODP.NET提供程序连接到数据库,也可以针对数据库生成我的EDMX。我不能做的是使用 Entity Framework 查询基础数据库。使用Visual Studio生成的connectionString实例化DbContext时,出现以下错误:
但是,之所以安装它是因为
我在Cassini上本地运行代码,并且我的硬件是32位体系结构,因此我假设我只能使用32位DLL,因此这不是体系结构问题。
具体的代码如下:
public class MyContext : ObjectContext, IUnitOfWork
{
public MyContext()
: base(ConfigurationManager
.ConnectionStrings["OracleEntities"]
.ConnectionString)//Connectionstring is verified
{}
}
在我离开一切,留 mustache 并住在山上某处之前,请帮助我。
解决方案:由于我还没有提到该解决方案,因此在此为子孙后代提一下。下面的Andrei询问了我的连接字符串格式,尽管我持怀疑态度,但我还是去看看了。这是我所看到的:
metadata=res://*/OracleModel.csdl|res://*/
OracleModel.ssdl|res://*/
OracleModel.msl;
provider=provider=Oracle.DataAccess.Client;
provider connection string="DATA SOURCE=localhost:1521;
PASSWORD=xxx;PERSIST SECURITY INFO=True;USER ID=xxx
现在,请特别注意该行
provider=provider=Oracle.DataAccess.Client;
实际上,它应该阅读
provider=Oracle.DataAccess.Client;
否则,您要告诉EF使用[provider.dll],这不是真的。还要注意,似乎connectionString元素的providerName属性似乎已被覆盖或忽略。
更新2 :如果此STILL无效,请查看machine.config。您应该看到以下部分:
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<remove invariant="Oracle.DataAccess.Client" />
</DbProviderFactories>
如果存在 ,请将其注释掉并重试,否则,将其放入并重新尝试。
最佳答案
尝试以下连接字符串格式:
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
查看Oracle db http://www.connectionstrings.com/oracle的连接字符串示例
关于c# - ODP.NET错误无法找到请求的.Net Framework数据提供程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17528252/