因為數據持久層選型,這段時間查閱了很多資料,也做了很多實驗,感覺這個東西雖然很強大,但在做大型項目時還是缺少靈活性,主要在以下幾個方面:
1、實體緩存支持不夠靈活,雖然支持緩存,但必須對ObjectContext進行單例或多例管理,而且哪些緩存,哪些不緩存,緩存多少,如何刷新,都不是很完善;
2、ESQL不支持復雜的查詢,這對于ERP之類的軟件其實是個軟肋;
3、如果要用edmx,分割和維護都是個麻煩事情;
4、如果表在不同的ObjectContext(也許是edmx),關聯查詢無法執行;
5、如果利用objectContext直接執行sql語句,返回的結果必須提供預先定義的實體類,不是很方便;
6、這個東東的延續性不是很好,微軟解決一些缺點時不是在原有體系上兼容,而是另起爐灶,DbContext就有取代ObjectContext的趨勢,雖然兩個都可以用,還可以混合,但至少暴露出延續性是個問題,改過來還是需要一些成本的。
7、用實體這種強類型確實有利于編程,但在系統中,復雜的查詢,特別是動態構造的查詢沒法使用,這是非常不利的。即不利于提高系統的靈活性,又沒法減少工作量。
AEF從目前來看,功能的強大基本達到數據庫系統級別:內存實體關系數據庫。難道微軟想用此替代SQLServer,Oracle?
其實我到希望微軟能在ADONet上提供一個數據庫
方言處理的類庫。
當然,AEF的優點很多,微軟已經宣傳的很多了,我就不說了.
至于測試驅動,代碼優先,概念優先都是些忽悠人的東東(至少很有一部分),微軟忽悠程序員,程序員忽悠老板,老板忽悠客戶。
后記:我很贊同有些同仁的說法,我也發覺,我越是了解它,越覺得它是個又臭又長的家伙。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
