EF Code First 課程信息的增刪改查操做的具體實現

1.今日完成任務程序員

  • 課程信息的增刪改查
  • 課程信息的格式化顯示
  • 增刪改查中的模型驗證

2.核心代碼數據庫

  • 課程信息的添加(使用Bootstrap模態框及模型驗證)

 

 

 接上一篇博客,咱們已經對實體類添加了必要的屬性約束,如今就能夠進行使用了。想要使用屬性約束,須要用到Html.ValidationMessageFor(m=>m.屬性名)app

 

 

 後臺應該添加2個方法,一個用於顯示添加頁面(讓用戶輸入必要的值);另外一個用於處理用戶提交的數據。Post方法可使用對象來接收用戶傳遞的數據,但用戶提交數據的名字必定要可以在該對象的屬性中找到,不然該對象將沒法接受此數據(能夠增長對應的參數名來進行接收)。框架

  • 課程信息的刪除:課程的刪除有兩種方式,最多見的應該是:先查詢到指定對象,而後調用刪除。其實,EF框架給咱們提供了一種更友好的刪除:實體狀態。關於對象狀態,其餘博主已經講的很詳細了,這裏就再也不班門弄斧了。推薦你們研究研究,尤爲是在大型項目中,能夠減小沒必要要的數據庫操做。

  • 課程信息的查詢及顯示:數據顯示這塊,其實沒太多知識點,可剛剛講到的添加模塊相似,也是使用系統函數進行顯示(Dispaly約束及數據類型約束)。針對本系統,咱們的課程想要顯示該課程對應的題目總數,咱們該怎麼辦呢?這裏有兩種方式,一個是course.Questions.Count。相信這種方式你們都能想到。但有些信息並非這麼容易獲取到或者使用太過於頻繁(總不能每次都這麼寫吧)。經研究發現,咱們能夠在實體類中添加一個額外屬性便可。謹記,必定要添加[NotMapped],不然就會被寫入數據庫啦

 

 經過這麼改造之後,咱們就能夠光明正大的和其餘屬性同樣,直接調用Count了。函數

 

  3.遇到的問題及解決方案spa

通過改造的實體類,Count只能用於顯示。想要進行數據檢索,仍是和其餘屬性不太同樣,主要仍是咱們並無把Count屬性寫進數據庫,也就沒辦法直接在EF框架中進行使用。這是否是預示着,Count除了用於顯示,就沒其餘用處了呢?哈哈,固然不是的啦,畢竟每一個程序員都有一顆不服輸的精神,況且這麼技術狂的我呢。通過不斷研究,我發如今Linq to Object中是可使用這個屬性進行檢索的。下面我就來給你們解密一下吧!對象

  1. 首先,咱們須要把EF框架轉化爲咱們的Linq to Object,其實這隻須要一個ToList()便可。
  2. 接着,咱們就能夠直接使用Count進行檢索了。

 

 4.項目進度規劃(因爲最近事情比較多,因此項目基本處於停滯狀態,如今才慢慢走入正軌)blog

相關文章
相關標籤/搜索