我们系统中的典型存储过程接受大约20个左右的参数.也没有机会重构这些存储过程.我基本上已经编写了自己的代码生成器,将这些SP包装到(数据库提供程序不可知)"Command"对象中,其公共属性对应于SP参数.它有效,但我更喜欢第三方经过试验和测试的解决方案.
谁能推荐任何东西?我还没有找到支持OleDB和存储过程的程序.
编辑:我需要OleDb连接,因为SQL 6.5(信不信由你).ADO.NET无法连接到SQL 6.5.此外,这是一个.NET 2.0应用程序,所以LinqToSql对我没用.
Edit2:我已经尝试过nHibernate和iBatis.它们都不符合我的需要.我最后一次尝试nHibernate时,它要求SP返回一个结果集.我的SP不是这种情况.它们都需要我手动指定参数.
我有3个ORM层的经验:
亚音速
CSLA.NET
.NET层
这三个都是免费的,支持OleDb连接和存储过程.
Subsonic - 这是专门为Web应用程序构建的.它模仿了Ruby On Rails的很多功能.他们刚刚添加了迁移.亚音速是三者中最轻的.对于Winforms来说,使用起来有点困难,但并不像我想的那么难.它附带了一个很好的UI工具来生成代码和维护数据库设置.这是唯一支持不同数据库的人.我已经将它与SQLite,SQL Server CE和SQL Server一起使用.
CSLA.NET - 这个几乎可以处理所有新的和闪亮的.NET技术.我知道作者刚刚添加了对WCF,WPF和Silverlight的支持.当我需要使用企业级应用程序进行非常繁重的工作时,这就是我所使用的.它具有很多很好的功能,例如无限制的对象撤销,将集合标记为只读的能力,以及在任何你想要的地方移动和锚定对象的能力.这是最接近JBoss在Java上所做的事情.
Net Tiers - 我不是一个大粉丝,但它会完成工作.它比CSLA轻,但仍然比亚音速更重.
我还要提到NHibernate,Castle Active Record和Microsoft Enterprise Library.我对这些没有多少经验.