2011-12-22 42 views
4

我知道linq到sql和實體框架之間的高級差異,但是,我希望從其他人那裏得到建議,這些人已經自己做了切換,或者已經足夠與兩者的經驗。從強大的LINQ到SQL背景,就實現和低級細節而言,當我開始使用實體框架編寫我的新數據訪問層項目時,有什麼重要的事情需要了解?需要建議:從Linq切換到SQL到實體框架

我已經創建了我的edmx文件(我選擇了數據庫優先方法),並且所有內容似乎都與linq to sql至今完全相同。有什麼可以幫助我的是一個簡短的項目列表,比如在linq to sql中,你這樣[這樣],但是在實體框架中,你需要[這樣]。

對不起,如果這是一個奇怪的問題,但任何答案的嘗試將不勝感激。謝謝!

+0

而NH是比較成熟的,具有更豐富的功能只是說「用NH」不利於成長OP。 – 2011-12-22 14:08:35

+2

這可能是重複的:http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql – Strillo 2011-12-22 14:09:48

+0

我不認爲在EF4中有什麼根本不同 - 你可以幾乎去做你的就像你在Linq-to-SQL中所做的一樣。 EF4將提供*附加功能*(如表格繼承方案,將一個對象映射到多個表格或將一個表格映射到多個對象類型) - 但這些是「附加」,並不會妨礙您的發展。 – 2011-12-22 14:49:59

回答

1

在L2S和EF之間的新項目中,我建議EF(考慮實體框架版本4.0或更高版本,請勿使用早期EF版本)。

雖然Linq to SQL是一個類到表的映射,但EF 4是一個完整的ORM(對象關係映射)工具,具有不同的映射方案。

隨着EF你有很大的靈活性:

  • 數據庫第一種方法
  • 機型第方法
  • 守則第一種方法

與LINQ提供一個強大的整合。

用Linq2SQL進行單元測試是一場噩夢。 使用EF您可以使用POCO(Plain Old CLR Object)類。在L2S中,實體類緊密耦合到L2S名稱空間。

EF還可以幫助您在領域驅動設計方案中。

Microsoft現在認爲EF是第一種數據庫訪問方法,它是RIA服務或MVC數據庫腳手架等其他服務的基礎。

LinqToSql現在是第一個僅在Windows Phone場景中使用的數據庫訪問方法。

+0

「第一個數據庫訪問方法」是什麼意思?顯然,這些技術都不是第一個。 – 2011-12-22 18:43:56

+0

對不起,我可憐的英語......我的意思是在數據庫訪問技術集(ADO.NET,LinqToSql,EF)EF是微軟的首選,他的努力是專注於它。 – 2011-12-23 09:15:34

0

NH好遠......但同樣作爲EF是微軟的寶寶,它會隨着時間的專家組