學習資料: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