实体框架和Oracle问题

时间:2020-03-09 19:26:33

标签: entity-framework-5 oracle12c odac

我有一个用于Oracle 12c(ODAC为32位,版本为4.122.1.0)的Oracle.DataAccess.dll,用于连接到Oracle DB。在这种环境下,Oracle数据库与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本身的多次安装。在这一点上,我有点想法。任何帮助都将受到欢迎。

1 个答案:

答案 0 :(得分:0)

我发现了问题。这是问题所在的安装的一部分。安装后,我跳过了.NET的配置提供程序设置。我以前的文档说没有选择它,但是显然这是错误的。选择该设置可立即解决问题。