zoukankan      html  css  js  c++  java
  • Volo.Abp.EntityFrameworkCore.MySQL 使用

    • 创建新项目

    打开 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

  • 相关阅读:
    PyQt(Python+Qt)学习随笔:QMdiArea多文档界面区域的viewMode、documentMode、tabsClosable、tabPosition等属性介绍
    书籍收藏
    通用经验:大企业如何逆势而上
    T 恤
    柳传志:做企业家还是政治家
    管理最大的挑战是怎么激活人,尤其是激发年轻人
    张瑞敏:企业要长“第三只眼”
    软件就是未来:工业4.0时代下的工业软件
    软件:工业的未来
    poj 3422 Kaka's Matrix Travels 费用流
  • 原文地址:https://www.cnblogs.com/jesn/p/10268913.html
Copyright © 2011-2022 走看看