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


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

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

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

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

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

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

二、建立MVC項目

環境:vs.net2013 sql2008 ef6.1 mvc5

image

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

image

image

三、創建模型

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

image

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

image

image

image

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

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

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

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

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

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

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

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

在Name上面輸入[],在里面輸入Display ,我就會拼這個單詞,所以,每次都用她      微笑

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

image

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

image

弄成這樣:

image

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

image

四、創建上下文

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

image

image

image

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

image

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

image

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

image

 

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

七、生成界面

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

先編譯一下。

image

image

image

八、刪除原有數據庫

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

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

image

真真正正,干干凈凈

九、運行列表頁面

image

image

空的

十、添加記錄

image

image

十一,查看數據庫

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

image

image

image

 

十二、模型更改

1、Enable-Migrations

2、修改實體對象

image

3、Add-Migration AddUrl

4、Update-Database

image

十三、添加新模型

image

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

image

十五、Add-Migration AddUser

十六、Update-Database

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM