我正在为一个非常古老的数据库建立一个网站。因为数据库是不同标准的混合,所以我认为ORM不是正确的技术,而是使用存储过程和视图来与之交互。
使用旧的旧数据库有哪些优秀的.NET数据层框架?我感兴趣的功能是简洁的代码,用于调用数据库存储过程以及从结果到强类型对象的自动映射。
轻量且简单的框架也是一个优点。我要避免使用nHibernate的复杂性。
答案 0 :(得分:1)
我认为不同数据库的最佳选择是尝试在更新的标准中合并它们。使用ORM可能是可行的,我特别喜欢DevExpress' XPO,因为你实际上“编码”它几乎“透明”......它适用于很多数据库:
Access 2000,2007(Microsoft Jet),Advantage Database Server v9.1 +,DB2,Firebird 1.5+, MySQL Server 4.1 +,Oracle 9i,10g,11g,Pervasive.SQL 9 +,PostgreSQL 7 +,SQL Anywhere 11 +,Sybase Adaptive Server 12 +,SQLite 3,VistaDB 4和所有SQL Server版本......
您可以尝试使用实体框架ADO.NET并使用POCO对象方法,以便您可以自己更好地控制数据层。
同样,我肯定会尝试找到一种方法将所有数据合并到一个现代数据库中,如果你必须在旧数据库上运行遗留应用程序,尝试提出一个导出过程来将其数据复制到一个“可查询的'现代数据库后端......这样你就可以防止遗留应用程序在同一个遗留数据库中与网站竞争时遇到性能问题(并发性在许多遗留数据库中都没有得到很好的处理。 。),实际上有时最好的设计是将“报告”数据库(网站几乎总是像报告层)与“主要”工作数据库分开。
PS。:很抱歉在没有完全了解您的实际问题域的情况下建议解决方案...
答案 1 :(得分:1)
您可以尝试Microsoft Enterprise Library数据应用程序块。它使用ADO.Net作为封面,但将其包装在一个更易于使用的包中。它比NHibernate更轻量级。
答案 2 :(得分:0)
简单ADO.NET怎么样?它应该支持大多数数据库。对于较旧的数据库,通常有一个ODBC驱动程序,允许您连接到数据库。你需要支持哪些?