Oracle.ManagedDataAccess + EF的使用

1.http://www.oracle.com/technetwork/database/windows/downloads/odpmbeta-1696432.html 下载ORACLE的驱动,这个是托管版本的.

2.安装完成后,在VS2012中可看到ORACLE相关工具,这个比PLSQL要好用的多.

3.和使用SQL一样创建 数据实体模型.具体过程不说了,只说一下ORQCEL连接一块。

建议使用EZ CONNECT模式,直接输入相应的用户名,密码,IP,SID等即可。

 

4.代码用法和以前一样.直接使用了.

  private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                Entities en = new Entities();
                var db = en.Y_XMK.ToList();
                this.DataContext = db;
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

5. 运行:出错了.


指定的存储区提供程序在配置中找不到,或者无效。

 

6.解决方式

根据网上的说明,试着改了下CONFIG文件

参照:http://blog.csdn.net/liufan76/article/details/3173282

<system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client"/>
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.112.3.60, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data>

加上去后,运行良好。

 

7.分析问题

打开C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 发现

<system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.ManagedDataAccess.Client"/>
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.112.3.60, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
  </system.data> 此段内容已有.

再次打开C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config           没有见到上述内容。

 

将VS2012的生成目标平台改为:X86,一切正常.改回X64则出错. 结合参照的问题,因此此问题还是程序版本引起的,导致运行时改不到相应的驱动.



 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值