2011-12-13 53 views
1

我一直在閱讀實體框架的代碼第一方法和其他方法(Model first,database first)。實體框架 - 代碼優先 - 對於大型項目來說真的很好嗎?

1.)許多博客支持實體框架代碼的原因似乎是爲了讓開發人員高興,以便他們不必與設計師合作。我對這個觀點感到驚訝,因爲,你開發了一個項目來讓你的客戶滿意,而不是你的開發人員。項目計劃中有多少項目有開發人員的幸福感。另一個參數是避免xml上的很多映射。好吧,如果不是xml,我們最終會在OnModelCreating中完成這項工作,並將[Key]屬性添加到域模型中。所以映射不會被消除。

2.)另外,當您從代碼(域模型)生成數據庫時,域模型是以OO方式設計的,並且生成的數據庫結構可能不是最優的,這迫使我認爲此代碼第一種方法只適用於小型項目。

參數是否正確?

回答

1

1)代碼第一範式的原因是通過減少開發人員必須做的繁瑣重複工作(這反過來使他們更快樂)來節省開發時間。代碼優先允許開發人員大部分時間忘記SQL(有時您仍然需要編寫存儲過程),並專注於數據模型和業務邏輯。版本化數據庫(特別是在開發期間)更容易,因爲每個開發人員只需更改其c#模型,而不是編寫新的SQL腳本,檢查並確保團隊中的其他人知道要運行它。至於過去在ORM中的XML文件,我發現在修改域類時不斷查找相應的xml文件是很痛苦的。我個人發現在更改我的數據模型時流暢的界面更快。此外,v1.0中使用的xml文件實體框架變得如此龐大,當您的數據庫達到任何真實世界的大小時,它們是編輯/管理的真正痛苦。

2)我想不出一個場景,其中數據模式只能通過SQL創建,而不是先用實體框架代碼表示爲c#。

+1

Code First不支持Views和Stored Procedures。 – Martin1921

+0

@ Martin1921您能澄清一下嗎 - Code First可能無法生成Views和Stored Procedures(這是上述答案中的第二點的答案),但是我是否正確地假設您仍可以以某種方式調用它們? – BlueMonkMN