1

我们系统中的典型存储过程接受大约 20 个左右的参数。也没有机会重构这些存储过程。我基本上求助于编写自己的代码生成器,将这些 SP 包装到(与数据库提供程序无关的)“命令”对象中,它们的公共属性对应于 SP 参数。它有效,但我更喜欢第 3 方久经考验的解决方案。

任何人都可以推荐任何东西吗?我还没有找到一个支持 OleDB 和存储过程的。

编辑:由于 SQL 6.5(信不信由你),我需要 OleDb 连接。ADO.NET 无法连接到 SQL 6.5。此外,这是一个 .NET 2.0 应用程序,所以 LinqToSql 对我没有用处。

Edit2:我已经尝试过 nHibernate 和 iBatis。它们都不适合我的需要。上次我尝试 nHibernate 时,它​​要求 SP 返回一个结果集。我的SP不是这种情况。它们都需要我手动指定参数。

4

3 回答 3

5

我有 3 个 ORM 层的经验:

这三个都是免费的,支持 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 轻,但仍比 Subsonic 重。

我还要提到NHibernateCastle Active RecordMicrosoft Enterprise Library。不过我对这些没有太多经验。

于 2008-09-23T00:05:17.553 回答
0

据我所知,ADO .NET Entitry 框架对存储过程的支持很少……LINQ2SQL 你可以让它工作,但可能需要某种代理类……NHibernate 和 IBatis 是你最好的选择……

于 2008-09-22T23:53:08.237 回答
-1

备择方案:

  1. LINQ 到 SQL
  2. ADO.NET 实体框架
  3. 休眠
  4. 你的选择 )
于 2008-09-22T23:49:51.880 回答