ABP【一】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: ABP【一】

1.模板下载(选择MVC5.X)


https://aspnetboilerplate.com/Templates


2.还原库引用


3.迁移到MySQL


(参看:https://aspnetboilerplate.com/Pages/Documents/EF-MySql-Integration?searchKey=mysql


(3.1) .EntityFramework 和 .Web 项目都添加MySql.Data.Entity库引用


(3.2)修改\src\MyABP.EntityFramework\Migrations下Configuration.cs文件,在public Configuration()方法中添加

SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());

(3.3).Web项目的web.config文件中修改链接字符串

<add name="Default" connectionString="server=localhost;port=3306;database=sampledb;uid=root;password=***" providerName="MySql.Data.MySqlClient"/>

(3.4)删除 .EntityFramework项目中migration下的类似于"201506210746108_AbpZero_Initial"这样的有时间标识的文件。

(3.5)在程序包管理控制台中,切换到.EntityFramework项目,然后执行

Add-Migration "AbpZero_Initial"和 Update-Database

       数据迁移成功后即可启动项目

   


   注意:如果提示 Specified key was too long; max key length is 767 bytes错误,则在\src\MyTestABP.EntityFramework\EntityFramework目录下...DbContext文件中添加方法:

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
            base.OnModelCreating(modelBuilder);
        }

并且类之前添加定义:

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyABPDbContext : AbpZeroDbContext<Tenant, Role, User>
    {
          //........

4.对WebApi项目添加Swagger引用

(4.1)在webapi项目引用库Swashbuckle.Core

(4.2)在.....WebApiModule文件中添加方法并调用ConfigureSwaggerUi();

        private void ConfigureSwaggerUi()
        {
            Configuration.Modules.AbpWebApi().HttpConfiguration
             .EnableSwagger(c =>
             {
                 c.SingleApiVersion("v1", "SwaggerIntegrationDemo.WebApi");
                 c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
             })
             .EnableSwaggerUi();
        }

///**********在swagger中增加token支持:

            //****
            Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;
            ConfigureSwaggerUi();
        }
private void ConfigureSwaggerUi()
        {
            Configuration.Modules.AbpWebApi().HttpConfiguration
            .EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "SwaggerIntegrationDemo.WebApi");
                c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
            })
            .EnableSwaggerUi(c =>
            {
                c.InjectJavaScript(Assembly.GetAssembly(typeof(IndustryCloudWebApiModule)), "AbpCompanyName.AbpProjectName.Api.Scripts.Swagger-Custom.js");
            });
        }

新增js文件


.WebApi\Api\Scripts\Swagger-Custom.js


文件内容参考:


https://aspnetboilerplate.com/Pages/Documents/Swagger-UI-Integration?searchKey=swagger%20%20Authentication


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
设计模式 负载均衡 Nacos
远程调用 OpenFeign 底层原理解析
Feign 是Springcloud 提供一个声明式的伪Http客户端 它使得调用远程服务就像调用本地服务一样简单 只需要创建一个接口 并且添加注解就可以 Nacos 很好的兼容Feign Feign 默认集成了Ribbon 所以在Nacos 下使用Fegin 默认就实现了负载均衡的效果
2168 0
远程调用 OpenFeign 底层原理解析
|
数据库
新瓶装旧酒,纯生信三表一图孟德尔随机化8分Nature子刊
**摘要** 一项发表在《英国癌症杂志》(IF 8.8)上的研究利用孟德尔随机化方法分析了吸烟与结直肠癌(CRC)风险的关联。研究发现,吸烟开始会增加CRC风险,而戒烟则有保护效果,这些关联独立于其他吸烟特征和饮酒。通过基因预测的DNA甲基化,识别出CpG位点cg17823346 [ZMIZ1] 低甲基化降低CRC风险,而cg02149899高甲基化增加风险。共定位和基因-环境交互分析支持了这些表观遗传变化与CRC关联的生物学意义。研究强调了吸烟、DNA甲基化与CRC风险的显著联系,并为理解吸烟的致病机制提供了新见解。
221 2
|
开发者
冷门但好看的 VSCode 主题推荐
笔者在使用VSCode进行开发的过程中喜欢没事就逛一逛插件商店里的颜色主题,也看过国内外许多论坛上面的颜色主题推荐,不知不觉已经下载了超过一百个的颜色主题。这篇文章总结了我用过的最舒服的一些颜色主题。
7730 0
冷门但好看的 VSCode 主题推荐
|
人机交互 计算机视觉
CNN+GRU的网络攻击检测识别详细教学
CNN+GRU的网络攻击检测识别详细教学
272 0
CNN+GRU的网络攻击检测识别详细教学
|
存储 Java 索引
集合进阶Collection集合
这篇文档介绍了Java中的Collection集合和其子类List与Set的基本概念和特性。
148 3
|
前端开发 JavaScript UED
CSS神奇的卡片悬停交互效果
CSS神奇的卡片悬停交互效果
269 0
|
Java 数据库 关系型数据库
优秀的代码都是如何分层的?
好的应用分层应该做到1.方便后续代码进行维护扩展;2.分层的效果需要让整个团队都接受;3.各个层职责边界清晰。本文针对controller,service, mapper三个维度的应用分层进行整理,以优化后续代码的维护
10436 0
|
存储 缓存 Java
Java SPI技术
Java SPI技术
148 1
|
Java
hdu2519 新生晚会
hdu2519 新生晚会
101 0