2009-07-14 115 views
0

我正在開發一個應用程序,它目前通過ADO.NET和硬編碼的SQL語句查詢(相當大的)數據庫。無可否認,這很醜陋(即,如果在SQL中犯了錯誤,將不會引發編譯時錯誤)並且可能存在危險(由於SQL注入等原因,儘管這對於此特定應用程序來說不太可能是問題),但是最初並未考慮因爲這個應用程序真的只對這個數據庫中的一小部分表格感興趣(至少現在是這樣)。什麼時候應該考慮使用ORM框架?

LinqToSQL看起來很有趣,但由於該應用程序也需要有能力連接到Oracle數據庫,所以該計劃是一個非啓動器。

像我這樣的項目,是否適合與ORM框架集成,或者會過於矯枉過正?

+0

這看起來像http://的副本stackoverflow.com/questions/349718/ado-net-entity-framework-decision-making-between-orm-solutions等等。搜索「Orm框架」,你會看到。 – 2009-07-14 04:41:56

回答

2

我認爲一個ORM應該總是至少爲認爲是

但它聽起來並不像你甚至使用業務對象(有時稱爲數據訪問層或DAL),這大大破壞了面嚮對象語言的有用性。我會首先解決這個問題。如果您發現爲業務對象創建所有CRUD太耗費時間,那麼可以使用ORM ...

我個人最喜歡的是nHibernate。大的學習曲線,但絕對值得。

1

我會推薦一個生成的DAL而不是ORM或Linq。

看看亞音速http://subsonicproject.com/。它是一款開源DAL生成器,非常易於學習和使用,開銷非常低。

+0

我自己並沒有使用SubSonic,但是經常閱讀作者的博客。我認爲這可能是第一次進入DAL和ORM領域的一個很好的DAL。 – mkmurray 2009-07-14 04:49:52

1

我肯定會說它是一個ORM框架的候選人。一旦熟悉了框架,設置ORM的開銷很小,好處很多。

正如您所說,如果您可能需要Oracle支持,LinqToSQL並不合適,但其他大多數框架都支持Oracle。

如果您只使用表格的一小部分,那麼您將只需映射一小部分表格,因此安裝成本將進一步降低。

祝你好運!

0

嘗試使用生成sql的東西(如Linq,僅適用於Oracle),而不是orm。

爲什麼? Jeff Atwood explains.

報價:

「起初,你像」 whee!對象!「然後你意識到 - 嘿,這是很多乏味的,容易出錯的映射代碼,我之前不必寫......」

相關問題