实体框架和Oracle

4

我需要查看一个使用Oracle后端的新ASP.NET Web应用程序的ORM解决方案。

有没有人使用Entity Framework和Oracle有好/坏的经验?

是否有任何(最好是免费的)替代品?


可能是Can you use Microsoft Entity Framework with Oracle?的重复问题。 - bmargulies
7个回答

3

微软没有支持 Oracle 的 Entity Framework 选项 - 所有当前的选项都是非免费的第三方提供商。

NHibernate 在我的经验中与 Oracle 配合得非常好,LLBLGenPro 也是如此(不免费,但具有合理定价的每个开发人员许可证,用于实体映射设计器)。


我有一种感觉,微软没有支持的选项 - 文档提到EF可以针对任何数据源工作,但我找不到具体信息。非常感谢您澄清这一点。 - Jon

3
在2010年6月,Oracle发布了一份关于支持Microsoft ADO.NET Entity Framework的方向声明:

Oracle计划增强Oracle Data Provider for .NET (ODP.NET)以支持ADO.NET Entity Framework。Oracle数据库开发人员将能够使用Visual Studio工具和API,这是ADO.NET Entity Framework的标准组成部分。

ADO.NET Entity Framework是一个客户端/中间层技术。因此,Oracle的客户端软件和ODP.NET将直接集成到Entity Framework中,以支持与Oracle数据库的数据访问。

Oracle计划在“2010年底左右”发布beta版本,并在2011年投入生产。
通过下载方向声明本身可以找到更多信息。

1
在我的当前项目中,我们已经成功地使用了Oracle 11g和Entity Framework 1.0(Visual Studio 2008 SP1)。为了弥补开箱即用功能的差距,我实现了一个来自CodePlex的免费工具,名为EF Oracle ODP Provider。它利用了最新的Oracle数据提供程序,并提供了一个包装器以启用实体数据模型生成。不幸的是,它与Visual Studio内置的实体设计器集成不良,因此您必须运行一些命令行实用程序来建立和维护您的模型。
您可以在这里找到更多信息:http://eforacleodpprovider.codeplex.com/

1

我对EF没有任何经验,但nhibernate是一个非常好的替代品。
可以看看Stephen Bohlen在summer of nhibernate上的屏幕录像,它提供了一个很好的nhibernate入门介绍。


1

Microsoft Oracle Client和ODP.NET都不支持Entity Framework和LINQ to SQL。 DataDirect在他们的新Beta版本中支持Entity Framework,但不支持LINQ to SQL。 Devart dotConnect for Oracle同时支持Entity Framework(和LINQ to Entities)和LINQ to Oracle(针对Oracle的特定实现的LINQ to SQL)。


谢谢。我一直在使用你们的产品。希望这个链接对你有用 - http://www.devart.com/dotconnect/oracle/. - JackD

0

Oracle现在通过其 Oracle数据访问组件(ODAC)支持Entity Framework。但是,这仅适用于.NET 4.0+。

如果你最终遇到像我一样的顾客,他们执意要使用.NET 2.0 / 3.5,那么现在免费的Telerik Open-Access ORM与Entity Framework非常相似,支持包括Oracle在内的多个数据库。如果尚未停止对旧版本.NET的支持,则可能会将其放弃,但你肯定可以下载提供支持的旧版本。


0

由于不再支持EF6,我们不得不坚持使用EF5来连接Oracle数据库。我们遇到了一些映射问题。默认情况下,它会将number(5)映射为short,并在读取超过32k的数字时抛出异常。修复引起了部署中的一堆错误。最终我们改变了数据库。避免使用number(5)和number(10)数据类型。

我目前正在寻找具有LINQ和Oracle支持的其他ORM。

到目前为止,我已经发现了Telerik Data Access和NHibernate。


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