2008-09-22 170 views
1

我們系統中的典型存儲過程接受大約20個左右的參數。沒有機會重構這些存儲過程。我基本上已經開始編寫我自己的代碼生成器,它將這些SP封裝到(數據庫提供者不可知的)「Command」對象中,其公共屬性與SP參數相對應。它可以工作,但我更喜歡第三方久經考驗的解決方案。良好的支持OleDb和存儲過程的.NET ORM框架?

任何人都可以推薦任何東西嗎?我還沒有找到一個支持OleDB和存儲過程的程序。

編輯:我需要的,因爲SQL 6.5(信不信由你)的OleDb的連接。 ADO.NET無法連接到SQL 6.5。此外,這是一個.NET 2.0應用程序,所以LinqToSql對我來說沒有用處。

EDIT2:我已經嘗試過NHibernate和iBatis的。它們都不符合我的需求。上一次我嘗試nHibernate時,它要求SP返回一個結果集。我的SP不是這種情況。他們都需要我手動指定參數。

+0

你選擇了哪個框架?只是好奇。 – 2008-09-26 12:11:56

回答

5

我有一個3層的ORM經驗:

所有這三個都是免費的,支持OleDb連接,並存儲過程。

亞音速 - 這是一個web應用程序專門打造。它模仿了Ruby On Rails的很多功能。他們只是添加了遷移。亞音速是三個中最輕的。 Winforms的使用比較困難,但並不像我想象的那麼困難。它帶有一個不錯的UI工具來生成代碼並維護數據庫設置。這是唯一支持不同數據庫的人。我用它與SQLite,SQL Server CE和SQL Server。

CSLA.NET - 這一個幾乎可以處理所有新的和閃亮的.NET技術。我知道作者剛剛添加了對WCF,WPF和Silverlight的支持。這是我在使用企業級應用程序時非常繁重的情況下所使用的。它有許多很好的功能,如無限制對象撤消,將集合標記爲只讀的能力,以及在任何想要的位置移動和錨定對象的能力。這是最接近JBoss在Java上做什麼的。

網層級 - 我不是一個大風扇,但它會完成這項工作。它比CSLA輕,但仍比亞音速重。

我也想提一下NHibernate,Castle Active RecordMicrosoft Enterprise Library。雖然我沒有太多的經驗。

+0

你確定Subsonic支持OleDB嗎? – 2008-10-23 10:40:28

-1

替代方案:

  1. 的LINQ to SQL
  2. ADO.NET實體框架
  3. NHibernate的
  4. 你的選擇)
0

從我聽到的ADO .NET框架Entitry對存儲過程有支持... LINQ2SQL你可以使它工作,但可能需要一些代理類... NHibernate和IBatis我是你最好的選擇...