使用 abp-cli 创建增删改查项目

1 安装 abp-cli 

在 cmd 窗口中执行命令:

dotnet tool install -g Volo.Abp.Cli

 

 2 创建项目文件夹 TodoApp20220525,然后进入 TodoApp20220525 ,在文件地址栏输入cmd命令打开cmd,这样cmd命令的当前路径就为 TodoApp20220525

 

 3 使用 abp-cli 创建项目

执行命令  创建项目名为 TodoApp20220525 使用的模板为 app ,数据库提供程序未为ef,ui为mvc,mobile为none,使用的abp版本为4.4.4

abp new TodoApp20220525 -t app -d ef -u mvc -m none -v 4.4.4

 

 命令执行成功后,创建了如下目录:

 

4 创建数据库

打开项目解决方案sln文件,修改 项目 TodoApp20220525.DbMigrator 中的 appsettings.json 中的数据库连接配置

 

 然后设置项目 TodoApp20220525.DbMigrator 为启动项目,然后运行项目,运行完后,自动初始化了数据库

 

 5 在 TodoApp20220525.Domain 创建一个 实体 Item

using System;
using Volo.Abp.Domain.Entities;

namespace TodoApp20220525
{
    public class Item : BasicAggregateRoot<Guid>
    {
        public string Text { get; set; }
    }
}

6 在数据库上下文中添加 Item 的 DataSet

在项目 TodoApp20220525.EntityFrameworkCore 中的  数据库上下文 TodoApp20220525DbContext 中添加 DbSet 和 实体映射

        public DbSet<Item> Items { get; set; }

在 OnModelCreating 方法中添加如下实体映射配置

            builder.Entity<Item>(b =>
            {
                b.ToTable("Item");
            });

7 执行数据迁移命令

右击 TodoApp20220525.EntityFrameworkCore 项目,选择 “在文件资源管理器中打开文件夹”,然后在地址栏输入cmd,

输入迁移命令

dotnet ef migrations add Added_Item

 

 

然后执行应用迁移的命令

dotnet ef database update

 

 执行成功后,查看数据库,新建了 Item 表

 

 8 在 TodoApp20220525.Application.Contracts 添加应用服务接口和dto

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace TodoApp20220525
{
    // 继承 IApplicationService 可以使用动态api
    public interface IItemAppService : IApplicationService
    {
        Task<List<ItemDto>> GetListAsync();
        Task<ItemDto> CreateAsync(string text);
        Task DeleteAsync(Guid id);
    }
}
using System;
using System.Collections.Generic;
using System.Text;

namespace TodoApp20220525
{
    public class ItemDto
    {
        public Guid Id { get; set; }
        public string Text { get; set; }
    }
}

 

9 在 TodoApp20220525.Application 项目中实现应用服务

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;

namespace TodoApp20220525
{
    public class ItemAppService : ApplicationService,IItemAppService
    {
        private readonly IRepository<Item, Guid> _itemRepository;

        public ItemAppService(IRepository<Item, Guid> itemRepository)
        {
            _itemRepository = itemRepository;
        }

        public async Task<ItemDto> CreateAsync(string text)
        {
            var insertItem = await _itemRepository.InsertAsync(
                new Item { Text = text }
                );

            return new ItemDto
            {
                Id = insertItem.Id,
                Text = insertItem.Text
            };
        }

        public async Task DeleteAsync(Guid id)
        {
            await _itemRepository.DeleteAsync(id);
        }

        public async Task<List<ItemDto>> GetListAsync()
        {
            var items = await _itemRepository.GetListAsync();
            return items
                .Select(item => new ItemDto
                {
                    Id = item.Id,
                    Text = item.Text
                }).ToList();
        }
    }
}

 

10 修改 TodoApp20220525.Web 项目的 appsettings.json 文件修改数据库连接,然后设置为启动项目运行

点击 login ,输入账号密码 admin/1q2w3E*

如果不存在该用户,就自己注册一个用户

登录成功后,在地址栏加上 /swagger 访问 swagger

测试 新增接口

 

 

 

 

使用 test 文件夹下的 TodoApp20220525.HttpApi.Client.ConsoleTestApp 访问应用服务,编辑 ClientDemoService 添加使用 IItemAppService 代码如下:

 

 

 右击 TodoApp20220525.Web 项目,打开文件夹,然后在cmd窗口中执行命令 dotnet run 启动

将 TodoApp20220525.HttpApi.Client.ConsoleTestApp 设置为启动项,运行

 

 

参考链接

abp文档

posted @ 2022-06-05 19:26  温故纳新  阅读(310)  评论(0编辑  收藏  举报