EF6 在原有數據庫中使用 CodeFirst 總復習(五、生成發帖頁面)
有點與在原有數據庫中使用 CodeFirst 遠了,不過是總復習嗎,總得全面點。
一、在用戶表(Users)中插入兩個用戶
二、生成發帖界面
MVC生成的界面很多,也沒使用Ajax,實際開發中很少會使用,這裏只是為了演示。
但無論用什麽生成,特性、實體對象等都是要用到的。
生成之前要編譯一下。
三、先試試看能不能運行
空空如也
應該顯示用戶名,顯示成登陸名了(其實預想的是不在新增和修改時顯示,未考慮到列表),刪除標記怎麽也顯示出來了,還有內容,能顯示的下嗎。。。
四、列顯示問題
讓列表顯示用戶,正好特性設錯了,嘿嘿。就讓它顯示吧,一會再到新增和修改裏刪除相應內容。
運行後頁面如下:
登錄名還未改,並且應放在後面。
五、將登錄名改為用戶,並放到後面
未找到自動生成時排序順序的特性,只能手動去拖代碼了,郁悶吧?!
列別顯示為:
系統使用登陸名未使用顯示名可能是因為登陸名在前面
六、血的教訓
自動生成列表框使用包含ID和包含Name的列,如果有多個Name,則使用前面的,為了記住它,我把用戶名拖到了前面:
七、重新遷移,遷移後數據庫中的字段順序卻不會改,嘿嘿,我用力的把它也拖到了前面(生成列表時並不以數據庫中的順尋為準)
八、刪除Post控制器和Views裏的Post文件夾,重新生成並運行
九、你就喜歡在前面?我非讓你到後面去,只能安裝上面的再拖一次代碼了
列別顯示為:
順序真是個大問題,好在我們實際開發時一般不用它生成,我們自己生成,就可以想辦法用特性等方法解決了。
拖代碼起始也很簡單,選中th或td,拖到後面,按Ctrl + E + D,自動排版一下就可以了,我一般都是習慣按Ctrl + E + D + S
十、看看我們的新增界面
順序也能將就了,內容不是多行文本,不應該顯示用戶,用戶是我們根據登陸的當前用戶自己添加進去的。
改為了多行文本,順便去掉了ntext
沒查ntext和max那個更長,只是max更大一點,你喜歡長的還是大的?重新遷移一下自己去數據庫看吧。
十一、去掉用戶,在新增時加上
在Creat.cshtml和Edit.cshtml中刪除下面代碼
<div class="form-group">
@Html.LabelFor(model => model.UserID, "UserID", new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("UserID", String.Empty)
@Html.ValidationMessageFor(model => model.UserID)
</div>
</div>
修改控制器
運行看看:
怎麽有男性話題?不是軟刪除了嗎?
這個軟刪除真是很麻煩,先去把這個改掉吧,顯得嚴謹一些,當然我們也只改此一處 :)
像復制粘貼不,你喜歡B還是喜歡U?
編譯運行看看
點確定啊,這樣就差不多了
十二、還記得我們的Post實體對象嗎,和Blog不一樣的那個地方
實踐也證明了,bool 系統會自動添加默認值 false的,其它的呢?明天查查資料吧
EF6 在原有數據庫中使用 CodeFirst 總復習(五、生成發帖頁面)