Abp VNext 入门——让ABP跑起来

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

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

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

一、Abp 简介

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

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

二、项目创建

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

Abp VNext 入门——让ABP跑起来

 


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

Abp VNext 入门——让ABP跑起来

 


下面我将带领大家搭建一个简单的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<Guid>   {        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<BookStoreDbContext>{   public DbSet<AppUser> Users { get; set; }   public DbSet<Book> 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<Book>(b =>           {                b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema);                b.ConfigureByConvention();                b.Property(x => x.Name).IsRequired().HasMaxLength(128);           });       }   }

3.5、数据迁移

  • 打开 程序包管理器控制台(PMC)
Abp VNext 入门——让ABP跑起来

 


  • 选择 Acme.BookStore.EntityFrameworkCore.DbMigrations 作为默认项目并使用 Add-Migraction 命令迁移项目 成功后会创建一个迁移类
Abp VNext 入门——让ABP跑起来

 


Abp VNext 入门——让ABP跑起来

 


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

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

public class BookStoreDataSeederContributor : IDataSeedContributor, ITransientDependency   {        private readonly IRepository<Book, Guid> _bookRepository;        public BookStoreDataSeederContributor(IRepository<Book, Guid> 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对象资源管理器

Abp VNext 入门——让ABP跑起来

 


3.7.2、创建数据库 BootStore

Abp VNext 入门——让ABP跑起来

&nb.........

posted @ 2021-02-23 14:41  dreamw  阅读(2667)  评论(0编辑  收藏  举报