Entity Framework 6.0 入門系列 第一篇 好幾年前接觸過一些ef感覺不是很好用,廢棄。但是 Entity Framework 6.0是經過幾個版本優化過的產物,性能和功能不斷完善,開始學習。 EF ,全稱Entity FramWork。就是微軟以ADO.NET為基礎發展的所謂ORM ...
Entity Framework 6.0 入門系列 第一篇
好幾年前接觸過一些ef感覺不是很好用,廢棄。但是 Entity Framework 6.0是經過幾個版本優化過的產物,性能和功能不斷完善,開始學習。
EF ,全稱Entity FramWork。就是微軟以ADO.NET為基礎發展的所謂ORM(對象關係映射框架,或者說是數據持久化框架)。
簡單的來說就是根據實體對象操作數據表中數據的一種面向對象的操作框架,具體的底層也是調用ADO.NET。
EF支持SQL Server,Mysql,Oracle,DB2等資料庫上使用,我們可以將數據作為業務對象和實體來進行處理,開發者可以使用Linq來操作和查詢數據。
最終會生成SQL語句來執行,可以打開SQL Server Profiler來查看具體生成的每一條SQL語句;
Entity Framework 有三種領域建模方式,Code First,Model First,及Database First;
先簡單描述下這三種模式的區別
1.Database First是基於已存在的資料庫,利用某些工具(如VS提供的EF設計器)創建實體類,資料庫對象與實體類的匹配關係等,你也可以手動修改這些自動生成的代碼及匹配文件。也就是從一個資料庫開始,然後生成實體框架和相應代碼。我們我們又DBA來創建資料庫或者已經有存在的資料庫,這種方式作為首選;
2.Model First 是先利用某些工具(如VS的EF設計器)設計出可視化的實體數據模型及他們之間的關係,然後再根據這些實體、關係去生成資料庫對象及相關代碼文件。
3.Code First 這種方式需要先寫一些代碼,如實體對象,數據關係等,然後根據已有的代碼描述,自動創建數據對象。但其實這種方法與Model First是非常類似的。我們自己寫的代碼,其實就是用代碼表示實體模型,而Model First是用可視化的方式描述了實體模型。這個是最受歡迎的領域建模方式,比較靈活;
這三種方式各有利弊,使用過程中我們要按實際需求來選擇。這些工具的出現和使用,大大提高了開發人員的開發速度,使得資料庫、模型等出現了復用、擴展的可能,在應對變化方面也做了足夠的工作。這些工具所體現的服務思想更提醒我們要全方位去考慮問題,在產品中做好應對變化的措施。