4

我是MVC和EF的初學者。爲了更好地使用這些技術,我決定更清楚地理解事情。學習使用MVC的實體框架,首先採用哪種方法?

現在,我已經開始閱讀有關EF,並知道有Model-first,Database-firstCode-first技術。

我真的要開始一個將是我最有益的,因爲我要去使用MVC開發,然後我們回到另外兩個和他們每個人之間進行比較。

我唯一的問題是,我應該開始使用哪種技術?

回答

2

如果我建立一個新的網站,我會用代碼第一次肯定,因爲的Code First是:

  1. 技術(實體框架),微軟的所有努力是開發這個的未來新技術。 (我沒有想出這個我自己,我用微軟的球員之一,在一篇文章中讀它,對不起,我不記得是誰)。
  2. 它是爲構建的DDD與TDD/BDD並列的開發人員正在成爲標準(強詞)或構建軟件系統的正確方式。
  3. 正如它的名字一樣,你可以開始正前方(這是我喜歡做的事)編碼和擔心精細持久性細節稍後這是你應該做的事情。

我只會去數據庫優先如果我被迫與現有數據庫的工作。

模型首先是向着代碼的第一步,所以如果我是你我不會倒退。

注意:檢查出在這裏這個問題,以獲得更好的比較Entity Framework Code First vs Model/Database First

+0

我很好奇,爲什麼與現有數據庫的工作 - 在大多數現實世界的企業環境中默認的情況 - 是「一種倒退」。我有過這個問題,其中一個承包商決定,試圖「第一碼」核彈現有數據庫模式和數據的榮耀工作的唯一正確途徑,以取消合同的兩倍。如果我指定我們已經在合同數據和數百個表,並提供數據庫架構和EF ...爲什麼會違反合同,並使用代碼首先是這樣......重要。 *結束憤怒*。 (沒有數據丟失,我們仔細閱讀承包商代碼。) – Godeke 2013-03-01 15:25:29

+1

@Godeke,那麼我沒有說數據庫優先的方法是一個倒退,既不使用模型優先,當工作是一個現有的數據庫,因爲該數據庫可能是由非常好的數據庫專業人員設計的,我的意思是,如果我我打算開發一個新的系統,我會選擇Code First,因爲這是軟件開發的方向,否則如果系統已經存在,我會首先進入數據庫,或者先確定模型。 – 2013-03-01 17:01:10

2

對我們來說,我們根據數據庫是否已經存在來做這件事。在很多情況下,我們有預先存在的數據庫,所以我們首先使用數據庫。展望未來,我們傾向於創建數據庫,然後從中建立模型,因爲我們在這方面經驗更豐富。我之前做了代碼優先,而且我發現它很痛苦,但是你確實有更好的控制,並且能夠更好地理解EF在幕後做了些什麼。

對不起,我無法提供更好的答案。