1. 程式人生 > >實體框架 (EF) 入門 => 二、在全新的數據庫中使用 Code First

實體框架 (EF) 入門 => 二、在全新的數據庫中使用 Code First

輸入 mode 是個 延遲加載 src 查看 ros 每次 刪掉

學習資料:http://msdn.microsoft.com/zh-cn/data/jj193542

視頻建立的控制臺應用程序,我在這裏使用MVC。

一、非常有磁性的,非常優雅

很喜歡看這個人的視頻,雖然我聽不太懂,也不知道他叫什麽。他的聲音非常有磁性,讓我。。。,讓我。。。。。。,百聽不厭。

看到了嗎?他一邊講解,代碼就一邊流暢的顯示在屏幕上,讓你懂得,什麽是優雅。

原來也看過,但發現動手時還是無從下手,所以,不僅應該學習代碼,還應該學習流程,先做什麽,後做什麽,為什麽要這樣做。

二、建立MVC項目

環境:vs.net2013 sql2008 ef6.1 mvc5

技術分享圖片

身份驗證選擇個人用戶賬戶,只是免去自己添加驗證JS的麻煩,實際開發使用 無身份驗證。

技術分享圖片

技術分享圖片

三、創建模型

就像以前要先創建數據庫一樣,現在是先創建模型。

技術分享圖片

因為使用的是個人身份驗證,所以系統自動生成一些Controler/Model/View,不用管它。

技術分享圖片

技術分享圖片

技術分享圖片

代碼是我復制的,說明如下:

1、BlogId 這樣寫能與外鍵列名保持一致,感覺這樣好點

2、類名用的是Blog,而不是Blogs。實體一般用單數,在生成數據表是,會自動添加成復數表名 Blogs。

3、Post類還未建立,所以報錯。但現在我們使用的是Code First,可以這樣寫,因為我們現在也不編譯。在寫一個實體類時,即使沒有設計文檔,心裏也應該有個框框了,要建哪些實體,實體之間有什麽關聯。

4、Post類一樣使用單數形式,而集合使用的是同名復數 Posts 。

5、virtual 用於延遲加載,也就是你在使用Blog實體對象時,如果不使用相關聯的Post表中的數據,系統就不加載,你使用的時候,才到數據庫查詢相應的Post數據。

這樣可能要訪問兩次或多次數據庫,所以一般不會使用延遲加載,而是在需要時將需要的字段一次性取回。

因為是CodeFirst,所以,寫實體屬性時,應該也順便將常規的特性加上:

在Name上面輸入[],在裏面輸入Display ,我就會拼這個單詞,所以,每次都用她 技術分享圖片

在Display上右鍵,導入命名空間。

技術分享圖片

也可以這樣,輸入完Display後按Ctrl + . ,然後回車,爽不?

技術分享圖片

弄成這樣:

技術分享圖片

加上長度(20)還是有點用的,否則如果不小心輸入了100個字符,不僅沒有必要,你還要考慮列表顯示的問題了。

技術分享圖片

四、創建上下文

上面只是建立了兩個實體類,如果要與數據庫關聯,還需要創建上下文。

技術分享圖片

技術分享圖片

技術分享圖片

五、安裝(更新)EF,需要聯網更新

技術分享圖片

若果你的VS界面下方沒有 程序包管理控制臺 ,按下面方式打開:

技術分享圖片

六、編輯web.config,添加連接字符串

技術分享圖片

下面該幹嘛了?再看看視頻

七、生成界面

因為是全新數據庫,所以,建立了實體對象,並與上下文關聯後,就可以直接寫界面了。

先編譯一下。

技術分享圖片

技術分享圖片

技術分享圖片

八、刪除原有數據庫

這時程序未運行,所以還不會生成數據庫。

先把原來的刪掉,全新的嗎,原來怎麽應該有。

技術分享圖片

真真正正,幹幹凈凈

九、運行列表頁面

技術分享圖片

技術分享圖片

空的

十、添加記錄

技術分享圖片

技術分享圖片

十一,查看數據庫

剛才沒用這個是因為連不上。

技術分享圖片

技術分享圖片

技術分享圖片

十二、模型更改

1、Enable-Migrations

2、修改實體對象

技術分享圖片

3、Add-Migration AddUrl

4、Update-Database

技術分享圖片

十三、添加新模型

技術分享圖片

十四、將實體添加進上下文

技術分享圖片

十五、Add-Migration AddUser

十六、Update-Database

技術分享圖片

實體框架 (EF) 入門 => 二、在全新的數據庫中使用 Code First