ASP.NET網站開發--實體框架EF(Entity Framework)
1、什麼是Entity Framework!
它就是微軟提供的ORM工具,ORM讓開發人員節省訪問資料庫的時間,將更多的時間放在業務邏輯程式碼層中,EF提供變更追蹤,唯一性約束,惰性載入,查詢事物等!開發人員使用Linq語言對資料庫操作如同操作Object一樣省事。
2、EF使用場景!
1.從資料庫生成Class。2.由實體類生成資料庫表結構。3.通過資料庫視覺化設計器設計資料庫。
3、EF 組成!
EF5由兩部分組成EF api和.NET Framework 4.0/4.5。
EF6是獨立的 Entity Framework.dll,不依賴於.NET Framework
4、什麼是ORM(物件關係對映)以及特點!
ORM就是將資料儲存從域物件自動對映到關係型資料庫的工具。ORM包括:域物件,關係資料庫物件,對映關係。
簡單——以最基本的形式建模資料;
傳達性——資料庫結構被任何人都能理解的語言文件化;
精確性——基於資料模型建立正確標準化的結構;
5、該不該使用EF!
這個問題很複雜,我個人覺得,在大,中型專案中不宜使用EF,在小型或小中型中可以使用EF。
6、使用EF的三種方式!
(1)Database First
、資料庫優先,就是你先建好資料庫,然後再根據資料庫生成Model。
、這種方式唯一的缺點就是需要你去建實體物件的partial類,在partial類中設定特性等。
、感覺還是這種方式是最好的,只是沒有CodeFirst新潮啊,所以啊,很難留住那些花心的男人。
(二)Code First
、程式碼優先,就是先建立實體類,然後根據實體類生成資料庫。
、這種方式不需要partial類,你在寫實體類的時候,順便也會把特性寫上。
、這種方式使用起來也不像微軟說的那樣容易,你既要懂資料庫,又要懂Code First的各種約定、技巧,個人感覺比 Database
、First 入門更難。並且,操作不當的話,很有可能帶來災難性的後果,因為你一個錯誤的程式碼,就有可能導致資料庫暴動。
(三) Model First
、不想學這個,不男不女的
7、你該選擇哪一種!
、如前面所說,大中型專案,你就不該使用EF。(有些人要說,大中型專案,你都不該使用.net,嘿嘿,說吧說吧,言者無罪)
、如果是中型專案,應該使用 Database First。
、小型專案,可以使用Code First。當然得是熟練工啊,像我這種菜鳥,只能在這寫學習筆記。