abp ddd mysql_Abp VNext 入门——让ABP跑起来

因好多群友@我说 ,ABP他们简单的了解了下,按照官方的教程一路下来跑不起来(倒在了入门的门口),才有了此文。

此文结合官方文档,一步一步带领大家让ABP跑起来(跨过门口)。

建议大家一步一步实际动手操作下

一、Abp 简介

ABP是用于创建现代Web应用程序的完整架构和强大的基础设施! 遵循最佳实践和约定,为你提供SOLID开发经验.

ABP 是一个开源应用程序框架,专注于基于ASP.NET Core的Web应用程序开发,但也支持开发其他类型的应用程序.

二、项目创建

作为入门,这里就不使用CLI创建了,使用在线创建项目,在线地址:https://abp.io/get-started,为了演示,项目名称就用官方的Acme.BookStore

e646c43ba5ebdd2c5bc3db38a7aab0d0.png

下载完解压后,使用VS2019 打开后

6adeae2ac68a60479c55fa335ad9f359.png

下面我将带领大家搭建一个简单的CURD,并简单的带大家认识它的分层及各层是干啥的。

三、开发教程

3.1、在 Acme.BookStore.Domain.Share 层下创建 BookType 枚举

public enum BookType   {        Undefined,        Adventure,        Biography,        Dystopia,        Fantastic,        Horror,        Science,        ScienceFiction,        Poetry   }

3.2、在 Acme.BookStore.Domain 层下创建Book实体

public class Book : AuditedAggregateRoot   {        public string Name { get; set; }        public BookType Type { get; set; }        public DateTime PublishDate { get; set; }        public float Price { get; set; }   }

3.3、在 Acme.BookStore.EntityFrameworkCore 层下的 BookStoreDbContext 类中将 Book 实体加入

[ConnectionStringName("Default")]public class BookStoreDbContext : AbpDbContext{   public DbSet Users { get; set; }   public DbSet Books { get; set; } }

3.4、将 Book 实体映射到数据库表中

在 Acme.BookStore.EntityFrameworkCore 层下的 BookStoreDbContextModelCreatingExtensions 类中的 ConfigureBookStore 方法中添加 Book 实体的映射文件

public static class BookStoreDbContextModelCreatingExtensions   {        public static void ConfigureBookStore(this ModelBuilder builder)       {            Check.NotNull(builder, nameof(builder));            builder.Entity(b =>           {                b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema);                b.ConfigureByConvention();                b.Property(x => x.Name).IsRequired().HasMaxLength(128);           });       }   }

3.5、数据迁移

打开 程序包管理器控制台(PMC)

97442365b17ff5d84da405bb983d761a.png

选择 Acme.BookStore.EntityFrameworkCore.DbMigrations 作为默认项目并使用 Add-Migraction 命令迁移项目 成功后会创建一个迁移类

dcbb321bcc2bb191a74adba88fc41d46.png

d24bc34af912a5930dbfe726b1694dc6.png

3.6、添加种子数据(可选)

在 Acme.BookStore.Domain 层下创建 BookStoreDataSeederContributor 类

public class BookStoreDataSeederContributor : IDataSeedContributor, ITransientDependency   {        private readonly IRepository _bookRepository;        public BookStoreDataSeederContributor(IRepository bookRepository)       {            _bookRepository = bookRepository;       }        public async Task SeedAsync(DataSeedContext context)       {            if (await _bookRepository.GetCountAsync() <= 0)           {                await _bookRepository.InsertAsync(new Book               {                    Name = "1984",                    Type = BookType.Dystopia,                    PublishDate = new DateTime(1949, 6, 8),                    Price = 19.84f               },                autoSave: true);                await _bookRepository.InsertAsync(                    new Book                   {                        Name = "The Hitchhiker's Guide to the Galaxy",                        Type = BookType.ScienceFiction,                        PublishDate = new DateTime(1995, 9, 27),                        Price = 42.0f                   },                    autoSave: true               );           }       }   }

3.7、更新数据库

将 Acme.BookStore.DbMigrator 设为启动项目,并更改它下面的 appsettings.json 文件

更改 appsettings.json 文件中的数据库连接字符串(这里我使用VS自带的SqlServer数据库)。

3.7.1、视图 —> SQL Server对象资源管理器

ff4e6000679c8f4729c18cb06e5c2505.png

3.7.2、创建数据库 BootStore

d3a67b1ed509ce3206a353295cd63356.png

&nb.........

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值