一、添加引用
注意加的是
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Oracle.ManagedDataAccess\v4.0_4.121.2.0__89b483f429c47342\Oracle.ManagedDataAccess.dll
二、新建数据库连接
使用EZ connect是一种连接方式,参见
https://blog.csdn.net/licheng6302/article/details/7222492
三、添加Ado.Net实体模型
按照向导操作,成功添加,注意这里需要Entity 版本为5.0.0.0
四、修改App.config
在entityframework下添加以下字段
<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.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
如果未添加,会提示错误
五、删除数据
PlanTest p = new PlanTest();
var d = from u in p.EMP
where u.EMPNO == 8000
select u;
EMP e1 = d.FirstOrDefault();
if(e1!= null)
{
p.EMP.Remove(e1);
p.SaveChanges();
}
工程下载:https://download.csdn.net/download/vainfanfan/10501411
六、总结
总之最后把这个EF5+Oracle12c的问题解决了,ORM的思想确实很优雅,而在实际配置过程中出现了各种各样的问题。修改app.config的原理我还没弄清楚。由于web项目使用的EF为6.0版本,因此还需将EF5升级,与web配套使用。