Volo.Abp.EntityFrameworkCore.MySQL 使用

来源:https://www.cnblogs.com/jesn/archive/2019/01/14/10268913.html
-Advertisement-
Play Games

創建新項目 打開 https://cn.abp.io/Templates ,任意選擇一個項目類型,然後創建項目,我這裡創建了一個Web Api 解壓項目,還原Nuget,項目目錄如下: 首先我們來查看下整個項目關於資料庫方面的引用: 從圖中我們可以看到IdentityServerHost和MKM.B ...


  • 創建新項目

打開 https://cn.abp.io/Templates ,任意選擇一個項目類型,然後創建項目,我這裡創建了一個Web Api

 

 

解壓項目,還原Nuget,項目目錄如下:

 

 

首先我們來查看下整個項目關於資料庫方面的引用:

 

 

從圖中我們可以看到IdentityServerHostMKM.BookStore.Host 這兩個站點有引用,IdentityServerHost是用戶中心API,和MKM.BookStore.Host 是我們的業務中心API,這裡我們以MKM.BookStore.Host的處理為例來講解下如何把原有的SqlServer替換為Mysql。

1、在以MKM.BookStore.Host添加Volo.Abp.EntityFrameworkCore.MySQL的引用

2、修改資料庫Default的連接字元串為Mysql的資料庫連接字元串

1     //SqlServer
2     //"Default" "Server=localhost;Database=BookStoreHost;Trusted_Connection=True;MultipleActiveResultSets=true",
3     
4     //Mysql
5     "Default": "SERVER=192.168.2.15; PORT=3306; DATABASE=BookStoreHost; USER=root; PASSWORD=123456;",
6     
7     // 緩存資料庫
8     "SqlServerCache": "Server=localhost;Database=BookStoreCache;Trusted_Connection=True;MultipleActiveResultSets=true"

 

3、DemoAppModule.cs

3.1 、替換引用

添加Volo.Abp.EntityFrameworkCore.MySQL的引用

註釋Volo.Abp.EntityFrameworkCore.SqlServer的引用

3.2、替換Module

 1 typeof(AbpEntityFrameworkCoreSqlServerModule)替換為typeof(AbpEntityFrameworkCoreMySQLModule)
 2 
 3     [DependsOn(
 4         typeof(AbpAutofacModule),
 5         typeof(BookStoreApplicationModule),
 6         typeof(BookStoreEntityFrameworkCoreModule),
 7         typeof(BookStoreHttpApiModule),
 8         typeof(AbpPermissionManagementEntityFrameworkCoreModule),
 9         typeof(AbpSettingManagementEntityFrameworkCoreModule),
10         typeof(AbpAuditLoggingEntityFrameworkCoreModule),
11         //typeof(AbpEntityFrameworkCoreSqlServerModule)
12          typeof(AbpEntityFrameworkCoreMySQLModule)
13         )]

 

3.3、 UseSqlServer改為UseMySQL

1  Configure<AbpDbContextOptions>(options =>
2             {
3                 //options.UseSqlServer();
4                 options.UseMySQL();
5             });

 

4、DemoAppDbContextFactory.cs

        public DemoAppDbContext CreateDbContext(string[] args)
        {
            var configuration = BuildConfiguration();

            //var builder = new DbContextOptionsBuilder<DemoAppDbContext>()
            //    .UseSqlServer(configuration.GetConnectionString("Default"));

            var builder = new DbContextOptionsBuilder<DemoAppDbContext>()
                .UseMySQL(configuration.GetConnectionString("Default"));

            return new DemoAppDbContext(builder.Options);
        }

5、遷移&&生成

5.1、刪除預設遷移文件

刪除Migrations目錄以及文件,因為預設的是SqlServer的,我們這裡是需要生產Mysql的。

5.2、 生成新的遷移文件

MKM.BookStore.Host設置為啟動項目,打開程式包管理控制台並且預設項目選擇為MKM.BookStore.Host

執行遷移命令 

PM> add-migration mysql_init

 

 

5.3、更新資料庫

PM> update-database -verbose

 

5.4、關閉 TodosController 的 Authorize,運行 MKM.BookStore.Host

    [RemoteService]
    [Area("BookStore")]
    [Route("api/BookStore/todos")]
    //[Authorize]
    public class TodosController : AbpController
    {
        private readonly ITodoAppService _todoAppService;

        public TodosController(ITodoAppService todoAppService)
        {
            _todoAppService = todoAppService;
        }

        [HttpGet]
        [Route("")]
        public Task<PagedResultDto<TodoDto>> GetListAsync()
        {
            return _todoAppService.GetListAsync();
        }
    }
}

  

 

 

github 地址:https://github.com/Jesn/MKM.BookStore.git


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

-Advertisement-
Play Games
更多相關文章
  • 1. 線程的其他方法 2. 線程隊列 線程隊列中三種隊列形式,所使用的方法相同,都有put(),get(),put_nowait(),get_nowait(),qsize(),full(),empty() 等這些方法.就只傳一組先進先出的代碼 import queue 先進先出隊列:queue.Qu ...
  • php連接資料庫,以及日期處理函數 $conn=mysql_connect("10.0.10.0:0000","root","123456") or die("資料庫連接失敗").mysql_error(); mysql_select_db("database"); $querry1 = "SELE ...
  • 線程的其他方法: from threading import Thread,current_thread: currrent_thread().getName() 獲取線程的名稱 current_thread().ident 獲取到線程的id current_thread() 當前線程的信息 imp ...
  • ASP.NET Core 從2.2版本開始,採用了一個新的名為Endpoint的路由方案,與原來的方案在使用上差別不大,但從內部運行方式上來說,差別還是很大的。上一篇詳細介紹了原版路由方案的運行機制,本文仍然通過一幅圖來瞭解一下新版的運行機制,最後再總結一下二者的異同點。(ASP.NET Core ...
  • 1. 前言 在UWP中DataTemplate是一個十分重要的功能,並且幾乎無處不在,例如DataGrid中的DataGridTemplateColumn: 而且DateTemplate(或ControlTemplate)極有可能需要由代碼動態生成。 UWP大致上有兩種使用代碼生成DateTempl ...
  • 昨天在微信群里聽到老牌Excel開發利器NPOI的作者瞿總說4.6.1版本的NPOI已經支持.NET Standard 2.0了,這也就意味著你可以在.NET Core中使用NPOI了。 寫在前面 曾經的.NET Framework時代就很喜歡使用這個組件來對Excel的進行操作,可是隨著.NET ...
  • 目錄:https://www.cnblogs.com/liqingwen/p/10261436.html 包含數字的字元可以使用 char.GetNumericValue 方法轉換為數字(雙精度浮點型)。 代碼如下: 輸出值:5 那麼,為什麼當一個 char ,並且只能為單字元時,GetNumeri ...
  • 前言:這是一個萌新從零開始的學習之路,與大家分享自己的看法與見解,還請指出錯誤與遺漏點方便改正。 1.認識電腦。 電腦語言常見的有C,PHP,Ruby,Java,C#,Basic,JS,C++等,這裡我用到的是C#語言,用到的軟體是VisualStudio 2013版本。當用VS打開發現之前寫的 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...