329 Clean Architecture with Web API

步骤

1、新建类库项目CitiesManager.Core

为CitiesManager.WebAPI添加项目引用

CitiesManager.Core中新建文件夹Entities,将CitiesManager.WebAPI中Models下的City.cs移动到Entities,删除Models,更新City.cs中的命名空间

using System.ComponentModel.DataAnnotations;

namespace CitiesManager.Core.Entities
{
    public class City
    {
        [Key]
        public Guid CityID { get; set; }
        [Required(ErrorMessage = "City Name can't be blank")]
        public string? CityName { get; set; }
    }
}

2、新建CitiesManager.Infrastructure类库项目

CitiesManager.Infrastructure中新建文件夹DatabaseContext,将CitiesManager.WebAPI中DatabaseContext下的ApplicationDbContext.cs移动到CitiesManager.Infrastructure中的DatabaseContext,删除CitiesManager.WebAPI中DatabaseContext,更新ApplicationDbContext.cs中的命名空间

using CitiesManager.Core.Entities;
using Microsoft.EntityFrameworkCore;

namespace CitiesManager.Infrastructure.DatabaseContext
{
    public class ApplicationDbContext : DbContext
    {
        public ApplicationDbContext(DbContextOptions options) : base(options)
        {

        }

        public ApplicationDbContext()
        {

        }

        public virtual DbSet<City> Cities { get; set; }


        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.Entity<City>().HasData(new City[]
            {
                new City
                {
                    CityID = Guid.Parse("F3D83BDE-F859-4C40-BDBE-A3ED8E48D850"),
                    CityName = "New York",
                },
                new City
                {
                    CityID = Guid.Parse("FE331780-B359-4707-8455-016D472ED64F"),
                    CityName = "London",
                }
            });
        }
    }
}

并安装如下NuGet包

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="8.0.6">

将Migration文件夹剪切到CitiesManager.Infrastructure中;

CitiesManager.WebAPI添加项目引用

3、通过Build Solution找出错误的地方并修正

结果

可以正常运行程序

项目结构如下

Gitee获取源码:

https://gitee.com/huang_jianhua0101/asp.-net-core-8.git

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄健华Yeah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值