【发布时间】:2009-07-09 02:58:36
【问题描述】:
我必须研究一个带有 Oracle 后端的新 ASP.NET Web 应用程序的 ORM 解决方案。
在将实体框架与 Oracle 结合使用方面,有没有人有过好/不好的经验?
有没有(最好是免费的)替代品?
【问题讨论】:
标签: oracle entity-framework orm
我必须研究一个带有 Oracle 后端的新 ASP.NET Web 应用程序的 ORM 解决方案。
在将实体框架与 Oracle 结合使用方面,有没有人有过好/不好的经验?
有没有(最好是免费的)替代品?
【问题讨论】:
标签: oracle entity-framework orm
Microsoft 没有支持 Oracle 实体框架的选项 - 当前所有选项都是非免费的 3rd 方提供程序。
根据我的经验,NHibernate 与 Oracle 配合得非常好,LLBLGenPro 也是如此(不是免费的,但为实体映射设计者提供价格合理的每位开发人员许可)。
【讨论】:
2010 年 6 月,Oracle 发布了关于支持 Microsoft ADO.NET Entity Framework 的方向声明:
Oracle 计划增强 Oracle Data Provider for .NET (ODP.NET) 以支持 ADO.NET 实体 框架。 Oracle 数据库开发人员将能够使用作为 ADO.NET 实体框架标准部分的 Visual Studio 工具和 API。
ADO.NET Entity Framework 是一种客户端/中间层技术。因此,Oracle 的客户端软件和 ODP.NET 将直接与 Entity Framework 集成,以支持对 Oracle 数据库的数据访问。
Oracle 计划在“2010 年底左右”发布测试版,并在 2011 年投入生产。
更多信息可以通过下载Statement of Direction本身找到。
【讨论】:
我对 EF 没有任何经验,但 nhibernate 是一个很好的选择。
请查看 summer of nhibernate 上的 Stephen Bohlen 的屏幕投屏,了解有关 nhibernate 的精彩介绍。
【讨论】:
Microsoft Oracle 客户端和 ODP.NET 都不支持实体框架和 LINQ to SQL。 新 Beta 版中的 DataDirect 支持实体框架,但不支持 LINQ to SQL。 Devart dotConnect for Oracle 支持实体框架(和 LINQ to Entities)和 LINQ to Oracle(Oracle 特定的 LINQ to SQL 实现)。
【讨论】:
在我当前的项目中,我们使用 Oracle 11g 和 Entity Framework 1.0 (Visual Studio 2008 SP1) 取得了巨大成功。为了弥补开箱即用功能的差距,我实现了 CodePlex 的一个免费工具,称为 EF Oracle ODP Provider。这利用了最新的 Oracle 数据提供者并提供了一个包装器来启用实体数据模型的生成。不幸的是,它不能很好地与 Visual Studio 中内置的实体设计器集成,因此您必须运行一些命令行实用程序才能让您的模型站起来并进行维护。
您可以在此处了解更多信息:http://eforacleodpprovider.codeplex.com/。
【讨论】:
Oracle 现在通过 Oracle Data Access Components (ODAC) 提供对 Entity Framework 的支持,但这只支持 .NET 4.0+。
如果您遇到像我这样顽固坚持使用 .NET 2.0/3.5 的客户,那么现在免费的 Telerik Open-Access ORM 的行为与 Entity Framework 非常相似,支持包括 Oracle 在内的许多数据库。对旧版本 .NET 的支持可能会被取消,如果它们还没有的话,但您肯定可以下载提供支持的版本。
【讨论】:
已放弃对 EF6 的支持,因此我们必须坚持使用 EF5 才能连接到 oracle db。 我们在映射方面遇到了一些问题。默认情况下,它会将 number(5) 映射为 short,如果它读取到 32k 以上,则会引发异常。该修复程序在部署中导致了一堆错误。我们最终更改了数据库。避免使用 number(5) 和 number(10) 数据类型。
我目前正在四处寻找另一个支持 LINQ 和 Oracle 的 orm。
到目前为止免费,我找到了 Telerik Data Access 和 NHibernate。
【讨论】: