我是CSLA和實體框架的新手。我正在創建一個新的CSLA/Silverlight應用程序,它將取代12年前的Win32 C++系統。舊系統使用自定義的DCOM業務對象庫並使用ODBC訪問SQL Server。新系統不會立即取代舊系統 - 它們必須在未來幾年與同一個數據庫共存。我應該使用實體框架,而不是原始的ADO.NET
起初我以爲EF是最近最偉大的一條路。在製作一個小型EF模型並且只有2個CSLA可編輯根對象(我最終將擁有數百個對象,因爲我的數據庫有800多個表),我非常懷疑EF的使用。
在當前系統中,我需要多次對查詢進行細節性能調整,因爲對生成的SQL進行了100%的控制,所以我可以做到這一點。但是,EF似乎在幕後發生了這麼多事情,我失去了這種控制。像http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html這樣的文章不能幫助我對EF的印象。
人們似乎喜歡EF,因爲LINQ到EF,但由於我的標準是作爲標準對象在客戶端和服務器之間傳遞,所以似乎我可以在沒有LINQ的情況下輕鬆構建查詢。我理解在WCF RIA中有查詢投影(或者類似的東西),我可以在客戶端執行LINQ,它在轉換爲實際SQL之前移動到服務器,所以在這種情況下,我可以看到EF的好處,但不能在CSLA 。
如果我使用原始的ADO.NET,我會後悔5年後的決定嗎?
最近有沒有人做過這個選擇,你走哪條路?
好問題...我正要問一個非常相似的問題。我一直想知道EF的優勢在於ADO.NET的速度和控制... – Walter 2010-05-25 13:28:16