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则出错. 结合参照的问题,因此此问题还是程序版本引起的,导致运行时改不到相应的驱动.