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則出錯. 結合參照的問題,因此此問題還是程式版本引起的,導致運行時改不到相應的驅動.