1. 程式人生 > >【無私分享:ASP.NET CORE 專案實戰(第四章)】Code First 建立資料庫和資料表

【無私分享:ASP.NET CORE 專案實戰(第四章)】Code First 建立資料庫和資料表

目錄索引

簡介

  本章我們來介紹下Asp.net Core 使用 CodeFirst 建立資料庫和表,通過 控制檯dotnet ef 兩種方式

修改EF上下文物件,新增測試類

  我修改了一下名字,Domains 改為了 wkmvc.Data

  我們新建一個資料夾 Models 用於存放 模型類

  我們在Models下面再新建一個資料夾SysModelsMange 用於區域模型類

  我們新建一個測試類SYS_USER

  namespace wkmvc.Data.Models
   {
    public class SYS_USER


    {
      public int ID { get; set; }
      public string USERNAME { get; set; }
    }
  }

我們修改一下上下文 ApplicationDbContext (黃色高亮)

  using Microsoft.EntityFrameworkCore;
  using wkmvc.Data.Models;

  namespace wkmvc.Data
  {
    public class ApplicationDbContext : DbContext


    {
      public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
      : base(options)
      {
      }

      public DbSet<SYS_USER> SYS_USER { get; set; }

      protected override void OnModelCreating(ModelBuilder builder)


      {

        base.OnModelCreating(builder);
      }
    }
  }

新增依賴包,通過控制檯執行Add-Migration

然後開啟 wkmvc.Data 類庫下面的 project.json 新增 Microsoft.EntityFrameworkCore.SqlServer 和  Microsoft.EntityFrameworkCore.Tools

 1 {
 2   "version": "1.0.0-*",
 3 
 4   "dependencies": {
 5     "Microsoft.EntityFrameworkCore": "1.0.0",
 6     "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
 7     "NETStandard.Library": "1.6.0",
 8     "System.ComponentModel.Annotations": "4.1.0"
 9   },
10 
11   "frameworks": {
12     "netstandard1.6": {
13       "imports": "dnxcore50"
14     }
15   },
16   "tools": {
17     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
18   }
19 }

我們開啟工具 ->  NuGet程式包管理器 -> 程式包管理控制檯,選擇預設專案 src\wkmvc.Data

輸入命令:Add-Migration Migrations

沒有識別命令?翻閱微軟的官方文件,大部分是使用 dotnet ef(稍後介紹) 命令的,找到一篇 

在控制檯執行一下這個語句Install-Package Microsoft.EntityFrameworkCore.Tools -Pre ,出錯了, 還原失敗,.NET Core CLI does not support running commands on class libraries as of Preview 2. Despite being able to install EF tools, executing commands may throw this error message. 也就是 類庫不支援,這裡微軟給出了 兩種解決方案:

我參考第二種嘗試了一下,確實可以了,但是 當我新增一個新的類庫 ,然後引用 wkmvc.Data的時候不行了,類庫無法引用 app專案,但是我們的上下文 ApplicationDbContext 在這個下面,怎麼辦?

無奈了,我嘗試在 wkmvc 下面 新增 Microsoft.EntityFrameworkCore.Tools 試試,將控制檯 預設專案改為 src\wkmvc 執行 Install-Package Microsoft.EntityFrameworkCore.Tools -Pre ,然後再切換回 src\wkmvc.Data 

注意:如果系統的 windows power shell 版本是2 要升級成 3 或 4

成功了!

然後執行 Update-Database -Verbose

這是沒有建立資料庫的許可權,我們修改 使用者 為管理員 ,重新執行 

成功,搞定!

通過dotnet ef 

    這個如何在類庫裡執行,還是參考上面 微軟 給出的兩個解決方案,我沒有解決,問題不是在於無法執行命令,而是 我的上下文 是在 wkmvc.Data 裡面的 ,總是找不到 這個上下文,如果有大神指點一下,我再來修改這篇文章,如果沒有就先放放,有機會解決了,再來更新。我們今天來介紹一下,就像微軟的 Demo 一樣,上下文和 Migrations 都在 src\wkmvc(web) 下面的如何使用:

  我們開啟我們要新增Migrations的資料夾(src\wkmvc),選中這個資料夾,按住 Shift 右擊,選擇 在此處開啟命令視窗(W)

   輸入dotnet ef --help 

  

    這裡,文件說的很清楚,我們需要進行幾步操作:

   ①  新增 Microsoft.EntityFrameworkCore.Tools 

   

   ② 新增 Microsoft.EntityFrameworkCore.Design

 

   然後再次執行 dotnet ef --help 

 

說明成功了,我們新增Migrations 

輸入: dotnet ef migrations add Migrations

希望跟大家一起學習Asp.net Core 

剛開始接觸,水平有限,很多東西都是自己的理解和翻閱網上大神的資料,如果有不對的地方和不理解的地方,希望大家指正!

雖然Asp.net Core 現在很火熱,但是網上的很多資料都是前篇一律的複製,所以有很多問題我也暫時沒有解決,希望大家能共同幫助一下!

相關推薦

無私分享ASP.NET CORE 專案實戰Code First 建立資料庫資料

目錄索引 簡介   本章我們來介紹下Asp.net Core 使用 CodeFirst 建立資料庫和表,通過 控制檯 和 dotnet ef 兩種方式 修改EF上下文物件,新增測試類   我修改了一下名字,Domains 改為了 wkmvc.Data   我們新建一個

無私分享ASP.NET CORE 專案實戰建立區域Areas,新增TagHelper

目錄索引 簡介   在Asp.net Core VS2015中,我們發現還有很多不太簡便的地方,比如右擊新增檢視,轉到試圖頁等功能圖不見了,雖然我們可以通過工具欄的自定義命令,把這兩個右擊選單新增上,但是貌似是灰色的不能用。   其實,這樣也好,通過手動建立,更讓我們深刻的理解M

無私分享ASP.NET CORE 專案實戰釋出專案到 Linux 上執行 Core 專案

目錄索引 簡介   ASP.Net Core 給我們帶來的最大的亮點就是跨平臺,我在我電腦(win7)上用虛擬機器建了個 CentOS7 ,來演示下,我們windows上的專案如何釋出專案到Linux上執行。我這裡有個在windows上搭建過的程式,我們主要演示如何在linux上執

無私分享ASP.NET CORE 專案實戰讀取配置檔案 appsettings.json

目錄索引 簡介   在我們之前的Asp.net mvc 開發中,一提到配置檔案,我們不由的想到 web.config 和 app.config,在 core 中,我們看到了很多的變化,新的配置系統顯得更加輕量級,具有更好的擴充套件性,並且支援多樣化的資料來源。   部落格園對於這個的

無私分享ASP.NET CORE 專案實戰讀取配置檔案 讀取自定義配置檔案

目錄索引 簡介   但隨之產生了問題:我們使用的是在 Startup.cs 中(如下圖)來實現配置讀取,有兩個問題 ① 我們如果定義N種配置,是否要再這裡新增N條這樣的配置 ; ② 如果我們的配置不想寫在appsettings.json中呢     解決問題

無私分享ASP.NET CORE 專案實戰十三Asp.net Core 使用MyCat分散式資料庫,實現讀寫分離

目錄索引 簡介   MyCat2.0版本很快就釋出了,關於MyCat的動態和一些問題,大家可以加一下MyCat的官方QQ群:106088787。我們今天主要介紹一下,在我們的Asp.net Core中如何使用Mycat,這源於一個大神(Amamiya Yuuko)的分享,但是,這中

無私分享ASP.NET CORE 專案實戰檔案操作 FileHelper

目錄索引 簡介   在程式設計中,我們很多情況下,會用到對檔案的操作,在 上一個系列 中,我們有很多檔案基本操作的示例,在Core中有一些改變,主要是我們常用的Server.MapPath()不存在了,不知道後續的版本會不會有,在這裡,我們只能自己封裝方法去實現。今天,我們就對一些基本

無私分享ASP.NET CORE 專案實戰Repository倉儲 UnitofWork

1 public abstract class Repository<T> : IRepository<T> where T : class 2 { 3 #region 資料上下文 4 5 /// <s

無私分享ASP.NET CORE 專案實戰EntityFramework下領域驅動設計的應用

這好像就是比我的多了一個“中轉層”,把我們的介面作為了一箇中轉,領域層繼承了倉儲實現業務和資料操作,這有什麼實際意義嗎?希望大家指正一下: 我不理解的是,如果是按照這樣,那麼我如果要修改註冊方法,比如我要在上面方法中傳遞 eamil,name,password 的基礎上還需要傳遞手機號碼,那麼我需要修改

無私分享ASP.NET CORE 專案實戰十一Asp.net Core 快取 MemoryCache Redis

1 /// <summary> 2 /// 修改快取 3 /// </summary> 4 /// <param name="key">快取Key</param> 5 ///

無私分享ASP.NET CORE 專案實戰十二新增對SqlServer、MySql、Oracle的支援

目錄索引 簡介   增加對多資料庫的支援,並不是意味著同時對多種資料庫操作,當然,後面,我們會嘗試同時對多種資料庫操作,這可能需要多個上下文,暫且不論。分散式資料庫,我們採用的是阿里雲的Mycat,這個後面會更新出來。我們今天的場景是:我們的專案可能是在windows上開發的使用的

無私分享ASP.NET CORE 專案實戰圖形驗證碼的實現

1 public class VierificationCodeServices 2 { 3 /// <summary> 4 /// 該方法用於生成指定位數的隨機數 5 /// </summary> 6

無私分享ASP.NET CORE 專案實戰第二新增EF上下文物件,新增介面、實現類以及無處不在的依賴注入DI

目錄索引 簡介   上一章,我們介紹了安裝和新建控制器、檢視,這一章我們來建立個數據模型,並且新增介面和實現類。 新增EF上下文物件   按照我們以前的習慣,我們還是新建幾個資料夾   Commons:存放幫助類   Domians:資料模型   Services

ASP.NET Core 專案實戰持續更新~~~

 一、前言   準備寫這個系列文章的設想開始於今年9月,毫無意外,期間又又又又拖了很長時間,文章主要是為了記錄自己學習使用 ASP.NET Core Web API 與 Vue 建立一個前後端分離的專案的整個過程。嗯,2018年快要結束了,應該能在 .NET Core 3.0 正式版和 Vue 3

ASP.NET Core 中文文件 MVC4.6Areas區域

Areas 是 ASP.NET MVC 用來將相關功能組織成一組單獨名稱空間(路由)和資料夾結構(檢視)的功能。使用 Areas 建立層次結構的路由,是通過新增另一個路由引數 area 到 Controller 和 action。 Areas 提供了一種把大型 ASP.NET Core MVC Web 應用

ASP.NET Core 中文文件 MVC4.2控制器操作的路由

ASP.NET Core MVC 使用路由 中介軟體 來匹配傳入請求的 URL 並對映到具體的操作。路由通過啟動程式碼或者特性定義。路由描述 URL 路徑應該如何匹配到操作。路由也同樣用於生成響應中返回的 URL(用於連結)。 這篇文章將解釋 MVC 和路由之間的相互作用,以及典型的 MVC 應用程式如何使

ASP.NET Core 中文文件 MVC4.1Controllers, Actions Action Results

Action 和 action result 是開發者使用 ASP.NET MVC 構建應用程式的基礎部分。 什麼是 Controller 在 ASP.NET MVC 中, 控制器( Controller  )用於定義和聚合操作(Action)的一個集合。操作( 或操作方法 )是控制器中處理入站請求的一個方

ASP.NET Core 中文文件 MVC2.3格式化響應資料

ASP.NET Core MVC 內建支援對相應資料(response data)的格式化,用來修正格式或生成客戶端指定的格式。 特定格式的操作結果 某些操作結果(Action result)的型別是指定的特定格式,比如 JsonResult 或 ContentResult。Action 可以返回格式化為

ASP.NET Core 中文文件 MVC4.4依賴注入控制器

ASP.NET Core MVC 控制器應通過它們的構造器明確的請求它們的依賴關係。在某些情況下,單個控制器的操作可能需要一個服務,在控制器級別上的請求可能沒有意義。在這種情況下,你也可以選擇將服務作為 action 方法的引數。 章節: 依賴注入 依賴注入(Dependency injection,

ASP.NET Core 中文文件 MVC01ASP.NET Core MVC 概覽

ASP.NET Core MVC 是使用模型-檢視-控制器(Model-View-Controller)設計模式構建網頁應用與 API 的豐富的框架。 什麼是 MVC 模式? 模型-檢視-控制器(MVC)架構模式將一個應用區分為三部分主要元件:模型、檢視、與控制器。這種模式有助實現關注分離。使用這種模式,使