2013-07-15 63 views
1

我們正在考慮針對大型應用程序的MVC 4。Entity Framework擔心企業解決方案

我們的DBA對數據庫的「失去控制」感到緊張,並且不喜歡應用程序代碼定義/更改數據庫結構的想法。我可以理解。他認爲這對於一個人或一家小店來說是件好事,但並沒有看到它是如何適合企業員工解決方案的。他在哪裏適應這個過程?

我認爲EF在企業環境中被廣泛使用,有沒有什麼好的文章可以更好地告訴我們如何使用EF與傳統的編碼器代碼和DB人員管理表格的環境相比?

+0

先使用DB,然後他會很高興。 –

+0

DBA? EF?他們的意思是什麼?你的問題也很有見地,這使得它不適合編程問答網站。考慮以允許我們回答問題的具體更客觀方面的方式修改您的問題。 – jsalonen

+1

也許這個問題可能是stackexchange.com/programmers的候選人。 – devuxer

回答

3

您似乎對實體框架是什麼以及它是如何使用的誤解。

實體框架被稱爲ORM或對象關係映射器。 ORM的任何內容都不會對DBA有任何控制。

的確,EF可以生成表格,數據模型,sql等,但它並不是。其他ORM也沒有。在它的核心,一個ORM只需要一個結果集,並將其映射到一個對象集合。這也可以通過存儲過程來完成。

大多數人喜歡做臨時查詢,EF非常適合這種情況,但是如果你的DBA要求所有查詢都是由他寫的(或者由他批准的,並且使用了sprocs),那麼它肯定可以使用那樣。

實體框架的當前版本實際上只支持查詢映射,但是由於在今年年底發佈的EF 6也將增加對Insets,Update和Deletes的支持。你今天可以做查詢,但它們不映射到對象。

但是,誠實地說,您的DBA應該真正面對DBA變得越來越不必要的事實。他們總是會有一席之地,但他們確實需要接受的是,他們不能對他們曾經擁有過的查詢執行進行控制。用戶(以及開發人員)要求更多的動態查詢,這意味着要執行生成的sql。

+1

我真的不同意,作爲一名DBA工作在EF5的企業級項目中,我認爲DBA的角色比以往更重要。我也覺得,儘管他們希望開發人員可以訪問EF模型,但DBA確實失去了對數據庫性能的很多控制,並且因此並不總是能夠改善數據訪問代碼的位置。在任何大型數據庫應用程序中,肯定會遇到性能問題需要解決的問題,我的經驗是,.NET開發人員不太適合執行此任務。 YMMV –

+0

@KevinDahl - 顯然,當開發人員接管即席查詢生成時,他們需要對查詢的性能負責。如果他們不能「完成任務」,那麼他們應該被某個人所替代,或者他們不應該以這種方式使用該工具。或者,您可以加強並學習實體框架,因爲它只是另一種查詢語言。我的觀點是,把所有東西都緊緊地捆綁在一起並不是一個解決方案,因爲它禁止企業像需要那樣靈活。通過嘗試成爲解決方案的一部分,您將成爲一個更大的問題。 –

+0

顯然與否,我還沒有發現它通常以這種方式工作。我也非常熟悉EF/LINQ,並且盡我所能地指出像foreach循環中過多包含或LINQ查詢之類的不良模式。當您是一個由10到15個DBA組成的團隊時但開發商們認爲這是一場艱苦的戰鬥。我認爲DBA在原始問題中應該保持警惕,因爲我很難相信我的經驗是獨一無二的。 –