前言:在上一篇部落格中我們做了一個小的Demo,使用EF實現了對資料庫的增刪改查的操作,所謂學習,我們就要學會舉一反三,所以好好學習一下上一篇的內容還是方便以後的擴充學習,這篇部落格我們主要來研究一下ModelFisrt,這什麼意思呢??拿中文說就是實體最先建立模型,也就是我們在不建立資料庫的前提下,寫入Entity Framework,讓EF架構來幫我們完成建立資料庫的動作,下面我們就詳細來介紹一下,我們還是和上一章一樣,使用控制台來進行操作。
1.建立一個控制台應用程式,起名:EFModelFirstDemo
2.在項目中右鍵添加一個ADO.NET實體資料模型
3.選擇模型內容為空白模型,,單擊完成
4.當單擊完成之後,將會出現一個可視化方式設計的實體資料模型,如何操作在上面也有一些提示,:
5.添加一個Entity FrameWorkEntity Framework
(1)從工具列中拖放一個實體或者右鍵新增實體到設計器中,給新添加的實體起名為UserInfo,但我們添加進去實體的時候,預設已經給我們添加了一個ID主鍵。:
注釋:預設產生的實體中的ID是自動成長的類型,如果我們不需要或者使用Guid的ID序號,那麼我們一定要在ID上面右鍵屬性設定StoreGeneratedPattern的值為None。
(2)在實體上面右鍵新增三個個純量屬性UserName,Pwd,SubTime。然後給每個欄位設定純量屬性設定屬性,這裡就不詳細說了,只要我們學習過資料庫的話,就一定會設定的,:
注釋:如果屬性的最大長度不設定的話預設是Nvarchar(Max),給SubTime的類型設定為DateTime時間類型。
(3)我們在添加一個訂單表和一個使用者角色表,然後給這三個表之間建立關係,如何建立關係呢?其實很簡單,只要我們知道兩個表之間的關係是一對一,一對多還是多對多,然後右鍵新增一個關聯,最後整體的模型圖:
6.根據上面的模型產生資料庫
(1)在設計器中按右鍵根據模型產生資料庫,開啟的情形,對這張圖大家很熟悉。
(2)然後對上面的圖形進行填寫和連結資料,:注意中的選擇或輸入資料庫名稱我們要自己輸入資料庫的名稱,然後單擊確定,在單擊下一步,完成的時候資料庫已經幫我們建立好了。
(3)當單擊完成之後就會根據實體模型產生SQL語句,:
(4)然後在上面的SQL語句中德空白中按右鍵執行,將會出現登入資料庫的介面,這時候我們將登入資料庫的資訊填寫完畢,單擊Conntect,即可幫我們建立好我們模型中的表在資料庫中。查看資料庫:資料庫的建立位置是預設的位置
(5)當到這一步的時候我們已經完成了建立資料庫的工作,是不是很爽呢。下來我們就驗證一下我們所產生的資料庫的是否能夠使用。
(6)這時候如果我們設計的資料模型不合理或者那裡有點小的Bug,怎麼辦呢?很簡單了,再重建一把不就行了。
(7)如果我們在資料庫中變化了呢?我們的模型變化了嗎?沒有,在這裡要注意我們的模型必須要和資料庫一致。那麼如何保持一致呢,在模型上面單擊右鍵選擇從資料庫更新模型, 出現一個介面,然後我們單擊完成,這時候我們的模型就和資料庫一致了。
7.使用EF協助我們實現添加一條資料
(1) 實現的代碼:
(2) 資料庫裡面加入了三條資訊,:
(3)使用資料庫的Profiler查看產生的SQL語句,總共執行了三條語句,這裡就不一一展示了。
8.使用EF幫我們實現一個查詢的結果
(1) 第一種兩個表之間相連實現的代碼:
(2)使用資料庫的Profiler實現查看上面執行的SQL語句:
注釋:從上面的執行結果可以看出EF架構在執行上段代碼的時候使用Inner Join關聯兩個表之間的關係。
(4)使用消極式載入來查詢UserInfo表的資訊,有些資訊在代碼的注釋裡面有:代碼如下
(5)查看結果
(6)通過Profiler查看產生的SQL語句:
注釋:如果有任何疑問,可以到我們的部落格園小組裡面給我留言,我們的小組名稱是”青春代碼”,我們大家可以共同互相探討一下,也可以在下面給我留言,這樣只能我回複了,為了技術,讓我們共同努力吧!