我想知道将从.Net使用Oracle和SQL的最佳实践。
优先级:免费解决方案,查询性能,可重用代码。
例如,对Oracle和SQL使用相同的LINQ查询会很漂亮。但据我所知,LINQ2SQL仅适用于Sql,实体框架 - 没有oracle提供者(例如我不想购买它并使用Codeplex),nHibernate - 所以我需要的性能接近纯查询。
你在我的.NET兄弟的项目中使用了什么? :)
感谢您的体验。
答案 0 :(得分:1)
我会使用NHibernate
或Enterprise Library
以及Data Access Application Block
。
这是一个显示如何使用它的链接。
Using Microsoft Enterprise Library Data Access Application Block – Part II
另一个以简短教程的形式
Get Started with the Enterprise Library Data Access Application Block
简而言之,NHibernate
是一个ORM(对象关系映射)工具,它允许您使用XML文件将面向对象的类映射到基础数据表,无论您使用的是什么基础数据存储。可以使用连接字符串对数据存储区进行配置,并为其提供正确的.NET数据提供程序,以使其完全正常工作。
另一方面,Enterprise Library's Data Access Application Block
是传统ADO.NET的一种包装器,以简化其使用。您可以命名连接字符串并打开与这些基础命名数据库/连接字符串的连接。一旦掌握了此库的Database
对象及其配置功能,就没有什么可能阻止您访问数据。
这有帮助吗? 您是否需要我可以帮助您的更多详细信息?
编辑#1
.NET中的任何内容都不会像“纯SQL查询”那样执行,因为.NET是托管代码。另外,在查询数据库之前,必须考虑连接开销和身份验证。
编辑#2
这里有NHibernate支持的数据库列表:
Databases supported by NHibernate
我似乎无法使用EntLib DAAB轻松找到(快速)支持的数据库列表,但这是我迄今为止已经使用过的内容:
其他许多人也受到支持。
答案 1 :(得分:1)
您还可以在ADO.NET中使用通用数据提供程序。请参阅System.Data.Common命名空间 - http://msdn.microsoft.com/en-us/library/system.data.common.aspx和“在ASP.NET 2.0和ADO.NET 2.0中编写通用数据访问代码”http://msdn.microsoft.com/en-us/library/ms971499.aspx
答案 2 :(得分:0)
您可能想要查看nhibernate。它是一个开源ORM,适用于大多数主要数据库。 http://nhibernate.info/
答案 3 :(得分:0)
我喜欢Stored Procedures,我认为它们会给你一个不错的表现和优雅。 nHibernate也是一个很好的解决方案。
除了这两个,我不记得我推荐的任何事情:)