我正在构建一个针对.Net 4.0的应用程序(目前不能更高)。我需要访问Oracle Db(11g),我想使用Entity Framework。
为了能够做到这一点我知道我必须使用:
第一个没问题,但是当我尝试安装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提供商的先决条件
答案 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构建的。
所以,我认为我们不能将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团队