2009-08-17 43 views
0

我曾經使用類構建數據層,但有人建議使用強類型化數據集,因爲它的開發速度更快。我要構建的數據層應該支持多個DBMS(Oracle,MSSQL,MySQL ..)。誰會更好地構建數據層強類型化數據集或類

如何通過使用強類型數據集或使用類來更好地構建它?

+3

爲什麼不使用實體框架?這是一個從多數據庫支持的數據庫生成的類結構(http://msdn.microsoft.com/en-us/data/dd363565.aspx) – HuBeZa 2009-08-17 11:33:20

+0

似乎仍然沒有解決方案來連接甲骨文來EF來自微軟陣營和所有其他解決方案是商業或測試,你不能在生產環境中使用 – 2009-08-24 07:54:01

回答

0

我使用強類型化數據集製作了幾個大型商業應用程序。 (適用於Oracle和MSSQL)

我喜歡使用Strongly Typed Datasets,下次再做。 我認爲在C#和VB.NET代碼中強列類型的列是一個很大的幫助。 但請注意,您可能需要爲填充功能製作自己的功能,有時也需要製作自己的功能。 (基於where子句) 對於Oracle,我使用了System.Data.OracleClient(我發現這個對我來說最合適)

請注意,對於Oracle,所有數字都轉換爲Decimal。 (不適用於ID列) 而當您在TableAdapter中更改SQL字符串時,它將覆蓋從Decimal到Int32的更改。這可能很煩人,但是當你習慣了它,這不是一個大問題。

+2

強類型數據集很好,但生成的TableAdapter是可怕的...有沒有簡單的方法來改變連接字符串,除了改變app.config,所以它不能由程序本身完成。它們總是爲特定的DBMS生成,而不是使用通用代碼:( – 2009-08-17 11:45:07

0

我把它放在數據庫表中,所以當業務內容發生變化時(表或字段),您不必重新編譯代碼。

然而,這是一個根本不同的方法。它內部使用動態SQL(不基於任何用戶輸入),這使得一些人感到緊張。

0

我的首選是使用CSLA等體系結構實現業務邏輯的類。數據訪問邏輯可以包含在相同的類中,或者分解爲單獨的類或數據集。將數據集用於業務邏輯並將其直接綁定到UI是相當有限的。