ORM系列之二:EF(3) 數據庫連接


目錄

1.前言

2.Code First默認連接

3.Code First指定數據庫

4.自定義連接

 

前言  

  在介紹EFCode First模式時候,我們沒有修改任何配置,運行之后自動在LocalDb創建一個新的數據庫,並且創建對應的物理表,這個是如何實現的呢? 

  其實在我們安裝EF時,就會自動檢測當前系統包含的數據庫實例,如果SQL Express可用,則默認連接的數據庫就是SQL Express;如果LocalDb可用,則默認連接的數據庫就是LocalDb;如果兩者同時可用,則由於LocalDbSQL Express是升級版,考慮向后兼容,默認使用Sql Express。當檢測到可用的數據庫之后,EF會在配置文件中添加對應的節點信息,如下圖,說明默認連接的是LocalDb

   

 

Code First默認連接  

  在Code First模式下,我們不修改任何配置,直接運行,此時我們自定義的上下文調用的是無參的構造函數,自動生成的數據庫名稱由EF生成。

   

  

  EF自動創建的數據庫名稱格式:項目名稱+自定義的上下文名稱,如下圖:

  

 

Code First指定數據庫 

  上述我們沒有修改任何配置,數據庫也是由EF自動創建,但這只適用於數據庫不存在的情況,如果數據庫已經存在,我們又改如何指定連接? 

 

  其實也非常簡單,我們同樣可以不修改任何配置,只需要在自定義的數據庫訪問上下文中實現一個有參數的構造函數,該參數即已存在的數據庫名稱,如下:

   

  

  再次運行,查看數據庫,我們在EF.ExistDatabase下已經可以看到Blog表,如下:

    

 

自定義連接

  到目前為止,我們只是修改了上下文的構造函數,沒有修改配置,不管是新建數據庫還是已有數據庫,一直使用的還是LocalDb,如果現在我們想完全自定義連接,又該如何實現呢?

 

  根據我們以往的經驗,需要在配置文件中添加連接字符串,但是此時要注意,連接字符串Name必須和自定義的上下文名稱一致,原來EF自動生成的節點可以刪除。

  修改前配置文件:

   

  修改后配置文件:

   

  運行后效果如下:

  

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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