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

来源:https://www.cnblogs.com/caofangsheng/archive/2019/03/31/10631539.html
-Advertisement-
Play Games

原文地址:http://www.entityframeworktutorial.net/code-first/database-initialization-in-code-first.aspx 在本系列教程的Code-First示例一節中,我們已經看到了EF 自動創建資料庫的過程。這一節中,我們將 ...


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

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

下麵的圖形,列出來了資料庫初始化的流程,從圖中可以看出,流程走向是基於我們傳遞給上下文類【繼承自DbContext類】的參數的。

 

就像上圖所示,基於上下文的參數,我們有下麵幾種:

  1. No Parameter【沒有參數】
  2. Database Name【資料庫名稱】
  3. Connection String Name 【連接字元串名稱】

先看下沒有參數的情況吧:

如果你在上下文類中,沒有指定任何參數的話,就會在你本地的 SQLEXPRESS 伺服器上創建資料庫,資料庫名稱是:{Namespace}.{Context clas Name}.【命名空間.上下文類的名稱】,例如下麵的代碼,EF將會創建SchoolDataLayer.Context名稱的資料庫。

接著看看 第二種情況:資料庫名稱

你可以在上下文類調用的base構造函數中,傳入資料庫名稱參數,然後EF就會創建你指定的資料庫名稱的資料庫。例如下麵代碼,EF為我們創建的是MySchoolDB資料庫。

最後看看第三種情況:資料庫連接字元串的名稱吧。

你可以在app.config配置文件中,配置資料庫連接字元串,然後把配置文件中連接字元串的名稱,傳遞到上下文類的base構造函數中。形式如下:“name=你的連接字元串名稱”。下麵的代碼,我們傳遞的是:

在上面的上下文類中,我們指定了一個連接字元串作為參數。請註意的是,連接字元串應該是【name=】開頭,否則就被被認為是資料庫的名稱,上面配置文件中資料庫是SchoolDB-ByConnectionString。EF就會為我們創建這個名稱的資料庫。請註意,你需要確保

providerName = "System.Data.SqlClient" 包含在連接字元串中。

好了,這一節就介紹完了,下麵一節,將介紹資料庫初始化策略。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 資料庫連接字元串(web.config來配置),可以動態更改connectionString支持多資料庫. SqlServer調用資料庫 using System; using System.Collections.Generic; using System.Linq; using System.T ...
  • 隨著.NET Core 在 Linux 下的熱動,相信動不動就要分散式或集群的應用的需求,會慢慢火起來。所以這段時間一直在研究和思考分散式集群的問題,同時也在思考把幾個框架的思維相對提升到這個Level。最近大力重構了框架兩個點:一個是分散式緩存,一個是資料庫主從備。 今天,先分享分散式緩存的改進的... ...
  • 早就聽說ASP.NET Core 3.0中引入了gRPC的服務模板,正好趁著家裡電腦剛做了新系統,然後裝了VS2019的功夫來體驗一把。同時記錄體驗的過程。如果你也想按照本文的步驟體驗的話,那你得先安裝.NET Core3.0預覽版的SDK。至於開發工具我用的時VS2019,當然你也可以使用VS C ...
  • 通過對地鐵運行圖的研究,我們決定將所有線路先行錄入資料庫,並決定採用迪傑斯特拉演算法實現最短路徑的查詢,對於迪傑斯特拉演算法我們並不陌生,在上學期的數據結構課程中我們學習並反覆訓練了很久關於這個演算法的具體實驗,有豐富的理論基礎和一定的操作基礎,當前最大的問題就在與對資料庫內容進行增刪改查以及鏈接頁面實現 ...
  • 在Windows Server2012版本的伺服器系統中,我們可以通過伺服器管理器中的"添加角色和功能"來添加IIS的Web伺服器,當我們不再使用IIS功能時候,我們也可以通過刪除角色和功能來刪除Web伺服器(IIS)並移除相關依賴項。 (1)遠程連接上windows伺服器,然後進入打開伺服器管理器 ...
  • .NET MVC全局異常處理(二) [TOC] 對上節的內容進行了補充 MVC過濾器Filter MVC有四種過濾器:Authorization、Exception、Action、Result,我們要用的的就是Exception異常過濾器 當我們新建一個MVC項目後,異常過濾器就已經自動在程式中註冊 ...
  • 前段時間在一個項目中,在一個地方要將函數所在類中的方法都調用一遍,但是否調用要通過配置文件中的內容決定。所以為了減少代碼量,在網上查了相關信息,終於成功的將其應用到了項目中,我在這裡將我做的一個簡單例子提供給大家,便於大家方便下載和理解。 主要用到了反射的一個特性,主要代碼如下: 基本步驟就是: 1 ...
  • 第一、添加異常觸發類,用於識別異常 第二、首先添加一個全局異常處理 第三、在MVC管道中註冊Filter 第四、引發異常 以上處理異常關鍵地一步,是下麵這一步,用於識別自定義或者系統地異常,然後進行相應地處理 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...