2009-09-18 62 views
0

我喜歡用SQL,我想我與它相當不錯。O/RM選擇(LINQ的不依賴)

我嘗試使用Linq(使用c#和Linq2Sql,看起來感覺像VB.Net更像SQL),我覺得這是非常令人沮喪的,你不能只運行你的查詢而不編譯和執行代碼。對於IQueryable,IEnumarable,IList等我並不是很了不起。我對於爲什麼在你是專業SQL用戶時使用Linq存在懷疑。

但我需要某種形式的O/RM的,所以我可以寫我的測試代碼,而我喜歡使用波蘇斯,而不是數據集。

所以在我的團隊考慮大家也一定程度的SQL專家(主要是MS SQL因此,T-SQL)的,享受數據庫編程,你會recommmend其中O/RM。 (商業或開源沒有關係,良好的支持,教程和文檔是必須的)

我們的開發環境將是C#,ASP.Net MVC與ExtJS的一起。

我們有我們的應用程序有點超過1000臺,我們將要遷移。您不會相信ADO.Net Entity Framework會在其上生成多少代碼。我也嘗試了一下Castle ActiveRecord,(我不知道任何關於(N)休眠和沒有足夠的ActiveRecord文檔來讓我去)

回答

3

最好的ORM支持LINQ的,這樣就不會真正成爲一個問題兩種方式。 LinqPad一定會幫助你學習曲線。 Linq具有顯着的優勢,所以你應該嘗試離開你的T-SQL舒適區並擁抱它。

隨着1000表,我肯定會遠離LinqToSql和客場的EntityFramework,他們只是不有效擴展。如果可能的話,你也想要一些體面的代碼生成。

有NHibernate的代碼生成選項,但它們通常無論是從我所看到的缺乏或商業。可能有一些很棒的免費產品,我還沒有找到它。我不知道城堡ActiveRecord的是你想要什麼,但它絕對上手的一種方式,你以後可以隨時轉換到其他模式NHibernate的頂部。

我不知道亞音速具有足夠的功能來支持寫在1000臺數據庫之上的大型應用程序,但它可能是一個不錯的選擇,否則。

LLBLGEN Pro是一個商業產品,我認爲最符合您的需求。

已經有很多其他的討論對SO和有關選擇.NET ORM別處:

NHibernate, Entity Framework, active records or linq2sql

+0

我投LLBLGEN。 – 2009-09-19 08:41:32

+0

Michael,你爲什麼要推銷SubSonic? :)恕我直言,它是_incomparabe_幾乎任何其他現代ORM支持LINQ。 – 2009-11-05 22:08:41

+1

亞歷克斯,我沒有像我相信你做的亞音速直接競爭的產品。看起來有很多人對SubSonic的Linq支持非常滿意,除了你。你的聲譽在你之前。我很樂意閱讀有關亞音速的支持LINQ具有零個關係到你,你的公司,或者你的網站的批評。 – 2009-11-06 10:10:55

1

但我需要某種O/RM,所以我可以寫我的測試代碼,我喜歡使用POCO而不是數據集。

然後我會強烈建議SubSonic [彷彿否則我不會:)。

5

不是一個真正的答案,但駁回LINQ作爲查詢語言^^

規則很簡單,之前嘗試LINQPad一週:

  • 找到適用於SQL Management Studio中的快捷方式在你的開始菜單 並將其移動到其他地方。
  • 取而代之,插入LINQPad的快捷方式。
  • 在接下來的一週內,只使用LINQPad執行所有即席SQL查詢。
0

看看iBatis,我的理解是,它是圍繞SQL薄得多的層比大多數OR/M解決方案。

0

在我的Java日子裏,我用Hibernate和自從搬到C#在幾年前,我一直在使用NHibernate。像iBatis一樣,它是Java ORM的一個端口,因此可以從雙方開發的功能中受益。文檔也很好。你甚至可以在那裏找到幾本書。