Entity Framework快速入門筆記第2篇—增刪改查


  前言:在上一篇博客中我們大致介紹了一下需要的准備工作,也就是一些自動屬性,隱式類型,匿名類等,下面我們通過建立一個簡單的例子來學習EF框架,直接進入主題吧:

1. 第一步:創建一個控制台應用程序,起名為EFDemo

2. 第二步:創建一個實體模型

  (1)在EFDemo項目上面右擊選擇添加—新建項—在已安裝的選項中選擇數據—ADO.NET實體對象模型,如圖所示:

  

3. 與數據庫進行連接

  (1)    單擊第二步建立的實體數據模型的添加按鈕,然后我們選擇從數據庫生成,如圖所示:

  

  (2)    單擊下一步,然后如果我們以前沒有操作的話在這里將是為空的,然后我們單擊新建連接,建立一個數據庫的鏈接,然后選擇“是,在連接字符串中包含敏感數據”,如圖所示:

  (3)    單擊下一步,選擇我們要生成實體框架對應的表,試圖或者存儲過程和函數,因為這里我只使用到了表,所以選擇表的選項就行了,如圖所示:

  

  (4)    單擊完成,這數據庫自動幫我們生成了實體對象和實體類,然后可以看到我的解決方案EFDemo下面生成的東西和VS2010不相同,當然大致的使用還是沒有變化的,只是有一些細節變了

  

4. 第四步,EF的第一個使用-增加

  (1)    添加如下代碼:

  

  (2)    數據庫中添加了一條數據,如圖所示:

  

  (3)    然后我們可以打開SQL Server2012數據庫,單擊工具—>SQL Server Profiler,打開工具,然后我們運行代碼,跟蹤可以看一下給我們生成的代碼是什么,如圖所示:

  (4)    還可以使用初始化器來實現數據的添加信息,效果和上面的一摸一樣,代碼如圖所示:

   

5. 第五步,EF的第一個使用-修改  

  (1)    添加如下代碼,如圖所示

  

  (2)    數據庫中修改語句如圖所示

  

  (3)    在SQL Server Profiler中查看生成的SQL語句,如圖所示:

6. 第五步,EF的第一個使用-刪除

  (1)    添加如下代碼,如圖所示

  

  (2) 數據庫中修改語句如圖所示

  

  (3) 在SQL Server Profiler中查看生成的SQL語句,如圖所示:

7. 第五步,EF的第一個使用-查詢

  (1)    實現查詢的第一種方法 foreach循環

  1)實現代碼如圖所示:

  

  2)結果就不用展示了,在我這里已經實現了

  3)查看SQL Server Profiler中生成的SQL語句,如圖所示:

  

(2) 實現查詢的第二種方法  Linq和List集合

  1)實現代碼如圖所示:

  

  2)查看SQL Server Profiler中生成的SQL語句,如圖所示:

  

(3) 實現查詢的第三種方法 Linq

  1) 實現代碼如圖所示:   

  

  2)查看SQL Server Profiler中生成的SQL語句和上面的第二個區塊中的執行語句一樣,這里就不累贅了。

  (4) 實現一個分頁的查詢

     1) 實現代碼如圖所示:

  

  2) 查看SQL Server Profiler中生成的SQL語句和上面的第二個區塊中的執行語句一樣   

  

  (5) 實現查詢的第五種方法 lambda

       1) 實現代碼如圖所示:

  

  2) 生成的SQL腳本在數據庫Profiler里面查看和下面寫的基本是一樣的。所以這里就不貼出來了,大家可以試一下

  3)lambda表達式查詢部分列

     var dataLambda = bjh.HKSJ_USERS.Where(c => c.ID > 100)

                .Select(c => new { id = c.ID, Name = c.LoginName });

     foreach (var item in dataLambda)

     {

         Console.WriteLine(item.id + "," + item.Name);

    }

8. EF的執行效率

  (1) 在我們.NET領域,會有很多人認為EF的效率不是很高,那是為什么呢?因為我們看到最后EF還是生成SQL語句來執行的,所以EF本身性能損失也就是對實體集合的修改,然后根據edmx的定義最終生成SQL語句這段時間浪費了CPU而已,而且EF還會自動幫助我們對SQL進行優化,所以EF的選擇還是挺不錯的,當然不能再非常大的項目使用,那樣才會表現出性能的問題。

 

完全是為了學習技術,歡迎大家多多交流!!謝謝拉!


免責聲明!

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



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