我使用.NET4.5.1 , MVC5 , EF6 ,与Oracle.ManagedDataAccess 4.121.1.0和Oracle.ManagedDataAccess.EntityFramework 6.121.2.0
我能够从现有数据库生成模型(部分按表添加表),应用程序构建就好了。
但是当我尝试运行测试查询以查看它是否可以获取数据时
public ActionResult Cancellations()
{
var factoryClasses = System.Data.Common.DbProviderFactories.GetFactoryClasses();
using (var db = new Entities())
{
var cancelationStatuses = new[] {3, 7, 9};
var result = db.TRANSACTIONDETAIL.Where(o => cancelationStatuses.Contains(o.TRANSACTIONSTATUSID));
return View(result);
}
}
它失败了(在var result = ... ), Unable to find the requested .Net Framework Data Provider. It may not be installed. Unable to find the requested .Net Framework Data Provider. It may not be installed.
当试图寻找 DbProviderFactories ,集合中没有任何内容( var factoryClasses = )。
但是我确实安装了12c 4(ODTwithODAC121024)和11g(ODTwithODAC1120320_32bit),并重新启动了机器。
数据库在11g上运行,我可以使用PL/SQL developer访问它
Web.config看起来如下:
.....
.....
......
我的假设是因为Oracle没有在DbProviderFactories或某个地方注册而失败
如何在DbProviderFactories中注册Oracle? 或者,如果不是这样,我的设置有什么问题?