Entity Framework 和 Oracle 的问题

Issue with Entity Framework and Oracle

我有一个使用 Oracle.DataAccess.dll for Oracle 12c 的环境(ODAC 是 32 位,版本是 4.122.1.0),因为它连接到 Oracle 数据库。在此环境中,Oracle DB 与 ODAC 在同一台机器上(用于开发目的)。

以前,我让两者一起工作,这样我的 .NET 应用程序就可以 运行 并访问数据库。我最近不得不关掉电脑并将所有东西重新安装到我的新环境中。然而,与往常一样,ODAC 有点固执。

我可以使用以下方法连接到数据库:

var conn = new OracleConnection(connectionString);
try
{
   conn.Open();
   conn.Close();
   return "Yes";
}
catch (Exception ex)
{
   return "No, because: " + ex.Message;
}

但是,我使用的应用程序通过 Entity Framework 打开连接。它使用以下内容:

public DatabaseContext()
       : base(new OracleConnection("Data Source=localhost:1521/dbName;User Id=dbUser;Password=dbPassword;"), true)
{
}

应用程序以前 运行 在我的另一台笔记本电脑上工作的方式,但是当我尝试 运行 应用程序时,我正在使用的这台新机器抛出以下错误:

无法确定 Oracle.DataAccess.Client.OracleConnection 类型连接的提供程序名称。

我的tnsNames.ora客户端配置如下:

dbName =
   (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dbName) 
    )
  )

我已经完成了 ODAC 和 Oracle 本身的多次安装。在这一点上,我有点没主意了。欢迎任何帮助。

我想通了这个问题。问题在于安装的一部分。安装时,我跳过了 Configure Provider for .NET 设置。我以前的文档说不要 select 它,但显然这是错误的。选择该设置可立即解决问题。