使用.net 4.0中的实体框架与Oracle数据库 - 可能吗?

时间:2017-01-24 20:45:47

标签: c# .net oracle entity-framework .net-4.0

我正在构建一个针对.Net 4.0的应用程序(目前不能更高)。我需要访问Oracle Db(11g),我想使用Entity Framework。

为了能够做到这一点我知道我必须使用:

  • Oracle.ManagedDataAccess
  • Oracle.ManagedDataAccess.EntityFramework

第一个没问题,但是当我尝试安装Oracle.ManagedDataAccess.EntityFramework NuGet包时,我收到以下消息:

  

无法安装包'Oracle.ManagedDataAccess.EntityFramework   2400' 年1月12日。您正在尝试将此软件包安装到以“.NETFramework,Version = v4.0”为目标的项目中,但该软件包不包含   任何与之兼容的程序集引用或内容文件   框架。有关更多信息,请与软件包作者联系。

当我将目标框架更改为4.5.2时,软件包安装并且一切正常,因此我假设此软件包以某种方式依赖于.Net framework~4.5。

是否有任何解决方法可以使其与.Net 4.0一起使用?

修改

为了清楚起见,我已经安装了Entity Framework 6.1.3,因为这是安装Oracle EF提供商的先决条件

2 个答案:

答案 0 :(得分:1)

Oracle.ManagedDataAccess.EntityFramework依赖于EntityFramework(> = 6.0.0&&< 7.0.0),因此您可以从该版本的nuget安装第一个Entity Framework 6.1.3 .Net Framework 4.0然后Oracle.ManagedDataAccess.EntityFramework

答案 1 :(得分:1)

我遇到了同样的问题,发现Oracle.ManagedDataAccess.EntityFramework 12.2.1100是为.net 4.5构建的。

Assembly explorer screenshot

所以,我认为我们不能将Oracle.ManagedDataAccess.EntityFramework 12.2.1100与.net 4.0一起使用。

UPD: 我从Oracle .NET Team收到了对这种情况的解释:

  

来自:“Oracle .NET团队”

     

日期:2017年4月16日,0:58:31

     

主题回复:[NuGet Gallery]包“Oracle.ManagedDataAccess.EntityFramework”

所有者的消息      

嗨Yuriy,

     

截至2016年1月,Microsoft已支持.NET Framework 4 support for versions 4.5.1 and earlier。在最新的ODP.NET版本中,Oracle   遵循该支持政策。

     

Oracle并未改变ODP.NET   它仅适用于.NET 4.5.2及更高版本。微软没有   更改.NET以防止向后兼容。实际上   可能新的ODP.NET可以与旧的.NET 4一起使用   版本。我不知道有任何不兼容性。 Oracle就是这样   正式支持或认证早期的.NET版本

     

问候,Oracle .NET团队