天天看點

實體架構 (EF) 入門 => 二、在全新的資料庫中使用 Code First

學習資料:

視訊建立的控制台應用程式,我在這裡使用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 ,我就會拼這個單詞,是以,每次都用她     

實體架構 (EF) 入門 => 二、在全新的資料庫中使用 Code First

在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