5.翻譯系列:EF 6中數據庫的初始化(EF 6 Code-First 系列)

原文地址:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspxhtml

 

EF 6 Code-First系列文章目錄:數據庫

 

 

在本系列教程的Code-First示例一節中,咱們已經看到了EF 自動建立數據庫的過程。這一節中,咱們將學習Code-First模式中,初始化數據庫的時候, EF是如何決定建立的數據庫名稱,以及在哪一個服務器上建立數據庫。服務器

下面的圖形,列出來了數據庫初始化的流程,從圖中能夠看出,流程走向是基於咱們傳遞給上下文類【繼承自DbContext類】的參數的。app

 

就像上圖所示,基於上下文的參數,咱們有下面幾種:ide

  1. No Parameter【沒有參數】
  2. Database Name【數據庫名稱】
  3. Connection String Name 【鏈接字符串名稱】

先看下沒有參數的狀況吧:函數

若是你在上下文類中,沒有指定任何參數的話,就會在你本地的 SQLEXPRESS 服務器上建立數據庫,數據庫名稱是:{Namespace}.{Context clas Name}.【命名空間.上下文類的名稱】,例以下面的代碼,EF將會建立SchoolDataLayer.Context名稱的數據庫。學習

接着看看 第二種狀況:數據庫名稱測試

你能夠在上下文類調用的base構造函數中,傳入數據庫名稱參數,而後EF就會建立你指定的數據庫名稱的數據庫。例以下面代碼,EF爲咱們建立的是MySchoolDB數據庫。ui

最後看看第三種狀況:數據庫鏈接字符串的名稱吧。spa

你能夠在app.config配置文件中,配置數據庫鏈接字符串,而後把配置文件中鏈接字符串的名稱,傳遞到上下文類的base構造函數中。形式以下:「name=你的鏈接字符串名稱」。下面的代碼,咱們傳遞的是:

在上面的上下文類中,咱們指定了一個鏈接字符串做爲參數。請注意的是,鏈接字符串應該是【name=】開頭,不然就被被認爲是數據庫的名稱,上面配置文件中數據庫是SchoolDB-ByConnectionString。EF就會爲咱們建立這個名稱的數據庫。請注意,你須要確保

providerName = "System.Data.SqlClient" 包含在鏈接字符串中。

好了,這一節就介紹完了,下面一節,將介紹數據庫初始化策略。

相關文章
相關標籤/搜索