因好多群友@我說 ,ABP他們簡單的了解了下,按照官方的教程一路下來跑不起來(倒在了入門的門口),才有了此文。
此文結合官方文檔,一步一步帶領大家讓ABP跑起來(跨過門口)。
建議大家一步一步實際動手操作下
一、Abp 簡介
ABP是用於創建現代Web應用程序的完整架構和強大的基礎設施! 遵循最佳實踐和約定,為你提供SOLID開發經驗.
ABP 是一個開源應用程序框架,專注於基於ASP.NET Core的Web應用程序開發,但也支持開發其他類型的應用程序.
二、項目創建
作為入門,這里就不使用CLI創建了,使用在線創建項目,在線地址:https://abp.io/get-started,為了演示,項目名稱就用官方的Acme.BookStore

下載完解壓后,使用VS2019 打開后

下面我將帶領大家搭建一個簡單的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)

- 選擇 Acme.BookStore.EntityFrameworkCore.DbMigrations 作為默認項目並使用 Add-Migraction 命令遷移項目 成功后會創建一個遷移類


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對象資源管理器

3.7.2、創建數據庫 BootStore

&nb.........
本文轉載自:http://www.shaoqun.com/a/501374.html