在使用Oracle数据库时,是否可以在.NET 4.0中使用Entity Framework?

4
我正在构建一个针对.Net 4.0的应用程序(目前不能更高)。我需要访问Oracle Db(11g),并且想使用Entity Framework。为了能够做到这一点,我知道我必须使用以下内容:
- Oracle.ManagedDataAccess - Oracle.ManagedDataAccess.EntityFramework
第一个没有问题,但是当我尝试安装Oracle.ManagedDataAccess.EntityFramework NuGet包时,我收到以下消息:
“无法安装包'Oracle.ManagedDataAccess.EntityFramework12.1.2400'。您正在尝试将此软件包安装到一个针对“.NETFramework,Version=v4.0”的项目中,但该软件包不包含与该框架兼容的任何程序集引用或内容文件。有关更多信息,请联系软件包作者。”
当我将目标框架更改为4.5.2时,软件包安装成功,并且一切正常,因此我认为这个软件包在某种程度上依赖于.Net framework ~4.5。
是否有任何解决方法使其与.Net 4.0一起工作?
编辑:
只是为了明确,我已经安装了Entity Framework 6.1.3,因为这是安装Oracle的EF提供程序的先决条件。
2个回答

1

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


更好了。请注意,您可以仅编辑现有的答案而不是删除并创建新的(尽管在某些情况下投票可能不会改变,但如果您回复任何评论,您可能会很幸运)。 - BradleyDotNET
谢谢你的建议。我今天开始回答了 :) - Damian Galletini
@DamianGalletini Entity Framework 是使用 Oracle.ManagedDataAccess.EntityFramework 的前提条件,我知道它可以与 .Net 4.0 兼容,但后者不行。 - Michal Delura

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

程序集浏览器截图

因此,我相信我们不能在 .net 4.0 中使用 Oracle.ManagedDataAccess.EntityFramework 12.2.1100

更新: 我从 Oracle .NET 团队那里得到了这种情况的解释:

发件人: "Oracle .NET Team"

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

主题: 回复:[NuGet Gallery] 针对 'Oracle.ManagedDataAccess.EntityFramework' 包所有者的消息

你好Yuriy,

微软已于2016年1月取消对.NET Framework 4.5.1及更早版本的支持。在最新的ODP.NET发布中,Oracle也遵循了这一支持政策。

Oracle并未改变ODP.NET以使其仅在.NET 4.5.2及更高版本中运行。微软也没有更改.NET以防止向后兼容性。实际上,新的ODP.NET很可能可以与旧的.NET 4版本良好地配合使用,我不知道有任何不兼容的情况。Oracle只是不再官方支持或认证早期的.NET版本

祝好,Oracle .NET团队


1
你有任何可以引用的来源或其他信息来支持你在这里的回答吗? - DaveyDaveDave
1
嗯,这只是我的观点,但我添加了一张截图来证明它。 - LANimal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接