2010-09-29 138 views
10

對於在傳統LAN網絡(1臺服務器和最多25臺客戶機)上運行的基本ERP(約150張桌面的DB,WinForm應用程序),你會推薦EF4還是DataSet?實體框架4或DataSet?

LINQ2SQL不是一個選項!

+0

當選擇這些東西時,我們需要知道性能要求以及數據如何在數據庫中存儲/佈局..您可以分享一兩個關於性能和數據庫表結構的信息嗎? – Nix 2010-09-29 13:10:36

+0

這是一個經典的桌面(更多OLTP/less OLAP)應用程序,MSSQL2008X數據庫在後端(大部分邏輯建立在存儲過程和關係中)關於銷售,採購,訂單,庫存和生產,但規模很小! – EmirZ 2010-09-29 13:17:59

+0

您可以在EF4中使用存儲過程 - 將SP映射到對象創建。但即使你不想使用EF4,我仍然拒絕使用DataSets。對象更容易處理。 – 2010-09-29 13:22:28

回答

6

EF4。 DataSet是一種古老的技術,EF在很多方面是對數據集問題的反應。

我們最近建立了一個應用程序,其中一部分是80桌上的CRUD操作。在EF之前,我們會使用企業庫和數據集。我們估計每個表格需要1小時來編寫CRUD操作和單元測試。使用EF時,這主要取代自動生成的代碼。

+0

您的EF CRUD代碼是否有單元/集成測試? – 2010-10-07 14:57:12

+1

@邁克爾Maddox,是的,它實際上是一個集成測試,因爲它碰到數據庫。我們把它放在一個事務範圍內,這樣它就不會改變數據庫。基本上,他們檢查沒有人更改創建數據庫的腳本,而不更新EF模型。採用代碼優先的方法會有所不同。 – 2010-10-08 07:01:20

+0

您加載了多少條記錄? 這是一個可行的選擇加載20000記錄(行)與實體框架的網格? – surfmuggle 2012-11-07 22:10:36

4

您可以根據應用程序邏輯選擇EF,EF可以給您更多的選擇,但我認爲我們無法根據表的數量來決定。

檢查這篇文章,這將幫助你決定:

Why use the Entity Framework?

還要檢查這個不錯的視頻:Data Development GPS: Guidance for Choosing the Right Data Access Technology for Your Application Today

+0

videoLink已經死了,去這裏換一個新的:http://channel9.msdn。com/Events/TechEd/NorthAmerica/2010/DEV324 – ruedi 2014-02-19 13:07:42

2

這沒有太大的支持信息的相當開放式的問題。這種決定涉及很多因素。只是你在發展還是一個團隊?無論哪種方式,您對EF有什麼經驗?如果您沒有很多經驗並且時間緊迫,那麼使用數據集完成工作可能會更快。

除了這些類型的問題,我是ORM的忠實粉絲,我認爲它從長遠來看使生活更輕鬆。但是如果你不熟悉某些概念,特別是陷阱(比如選擇N + 1問題),它確實有一條學習曲線。

+0

我是唯一的開發者......請閱讀以上評論! – EmirZ 2010-09-29 13:19:14

+0

這是一個經典的桌面(更多OLTP/less OLAP)應用程序,MSSQL2008X數據庫在後端(大部分邏輯建立在存儲過程和關係中)關於銷售,採購,訂單,庫存和生產,但規模很小! – EmirZ 2010-09-29 13:24:00

2

即使您不選擇EF4,DataSet也不是唯一的選擇。

我會更寧可工作POCOs比數據集。

對象比DataSet更容易操作。例如,驗證POCO中的數據是微不足道的,並且易於維護。在DataSet中它既不是。