ASP.NET MVC3 使用Entity framework连接ORACLE报错,高手帮忙看看.

hyblusea 2012-08-07 01:42:51
WEB.CONFIG中配置如下:

<connectionStrings>
<add name="pgdb"
connectionString="Data Source=pgdb;Persist Security Info=True;User ID=wbiadmin;Password=wbiadmin prot=1521"
providerName="System.Data.OracleClient" />
</connectionStrings>


TNS配置如下:

pgdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.69.32)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pgeaitest)
)
)


结果程序运行时报错:
对类型“System.Data.OracleClient.OracleConnection”的存储区提供程序实例调用“get_ProviderFactory”方法后,返回 null。存储区提供程序可能未正常运行。

我自己写的数据库访问层都没问题, 奇怪了.
...全文
789 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_15366657 2014-08-29
  • 打赏
  • 举报
回复
.config中把Provider=改成"Oracle.ManagedDataAccess.Client"就可以了,也不知道你怎么用数据库生成的EF,生成出来就是这个
xleafx 2013-08-06
  • 打赏
  • 举报
回复
修改machine.config文件,一样不行。
xleafx 2013-08-06
  • 打赏
  • 举报
回复
楼上 这个命令Gacutil.exe /i EFOracleProvider.dll。 直接报错:
杰拉尔 2012-08-07
  • 打赏
  • 举报
回复


1. 在C:\Windows\assembly目录下查找是否有EFOracleProvider.dll,如果没有,解压EFOracleProvider.rar ,在命令行下运行Gacutil.exe /i EFOracleProvider.dll。

修改machine.config文件。

文件的路径为C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config文件夹中,找到machine.config文件,用记事本打开,找到

<system.data>

<DbProviderFactories/>

</system.data>

改成如下内容

<system.data>

<DbProviderFactories>

<add name="EF Oracle Data Provider" invariant="EFOracleProvider" description="EF Provider for Oracle testing" type="EFOracleProvider.EFOracleProviderFactory, EFOracleProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b"/>

<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>

</DbProviderFactories>

</system.data>
zhangdaowu5 2012-08-07
  • 打赏
  • 举报
回复
先在PL/SQL里面去看看能不能连接上数据库,如果可以的话再去调试你的代码。
不訴離傷 2012-08-07
  • 打赏
  • 举报
回复
用ODP.NET連接是可以的。
xuan.ye 2012-08-07
  • 打赏
  • 举报
回复
http://thedatafarm.com/blog/data-access/oracle-releases-provider-with-ef-4-ef-4-1-and-ef4-2-support/
这个貌似应该可以
xuan.ye 2012-08-07
  • 打赏
  • 举报
回复
这个帖子的意思,好象是EF 不支持直接连接oracle
xuan.ye 2012-08-07
  • 打赏
  • 举报
回复
http://blogs.msdn.com/b/adonet/archive/2007/12/17/the-ado-net-entity-framework-not-just-for-sql-server.aspx

OpenLink Software - Providing connectivity to Oracle, Informix, Ingres, Sybase, MySQL, PostgreSQL, DB2, Progress and Microsoft SQL Server databases, and any data source accessible via OpenLink ODBC or JDBC bridge drivers
hyblusea 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

prot=1521 这个应该不需要吧?
[/Quote]

最开始是没有的, 我一点一点加其他属性,反复测试, 一直都不行....我用的是EF4.3
xuan.ye 2012-08-07
  • 打赏
  • 举报
回复
prot=1521 这个应该不需要吧?
hyblusea 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

看看 listener.ora

或者用plsql、sqlplus 之类能不能连上。。。
[/Quote]

都可以连上...TOAD也可以连上, 只有EF连不上.
xuan.ye 2012-08-07
  • 打赏
  • 举报
回复
看看 listener.ora

或者用plsql、sqlplus 之类能不能连上。。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧