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 它,但显然这是错误的。选择该设置可立即解决问题。
我有一个使用 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 它,但显然这是错误的。选择该设置可立即解决问题。