Resume全栈项目(.NET)


文章目录

  • 项目地址
  • 一、创建项目所需要的表
    • [1.1 创建实体层](#1.1 创建实体层)
      • [1. Entities](#1. Entities)
      • [2. Enums 存放枚举](#2. Enums 存放枚举)
    • [1.2 创建数据库层](#1.2 创建数据库层)
      • [1. 安装Persistance层需要的库](#1. 安装Persistance层需要的库)
      • [2. 创建ResumeDbContext](#2. 创建ResumeDbContext)
      • [3. 添加数据库配置/注册DBContext](#3. 添加数据库配置/注册DBContext)
      • [4. 执行Add-Migration](#4. 执行Add-Migration)

项目地址

复制代码

一、创建项目所需要的表

1.1 创建实体层

1. Entities

  1. BaseEntity.cs

    namespace ResumeManagement.Domain.Entities
    {
    public abstract class BaseEntity
    {
    public Guid ID { get; set; }
    public DateTime CreatedAt { get; set; } = DateTime.Now;
    public DateTime UpdateAt { get; set; } = DateTime.Now;
    public bool isActive { get; set; } = true;
    }
    }

  2. Company.cs : 里面有Job的Collection

    namespace ResumeManagement.Domain.Entities
    {
    public class Company:BaseEntity
    {
    public string Name { get; set; }
    public CompanySize Size { get; set; }
    //relations 一对多
    public ICollection Jobs { get; set; }
    }
    }

  3. Job.cs:每个职位有对应的公司id和名称,一个职位有多个候选人

    namespace ResumeManagement.Domain.Entities
    {
    public class Job: BaseEntity
    {
    public string Title { get; set; }
    public JobLevel Level { get; set; }
    //relations 多对一
    public Guid CompanyID { get; set; }
    public Company Company { get; set; }
    //relations 一对多一个职位可以有多个候选人
    public ICollection Candidates { get; set; }
    }
    }

  4. Candidate.cs: 每个候选人,有投递的工作ID和工作名称

    namespace ResumeManagement.Domain.Entities
    {
    public class Candidate: BaseEntity
    {
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
    public string CoverLetter { get; set; }
    public string ResumeUrl { get; set; }
    //relations 多对一
    public Guid JobID { get; set; }
    public Job Job { get; set; }
    }
    }

2. Enums 存放枚举

  1. 公司规模的枚举

    namespace ResumeManagement.Domain.Enums
    {
    public enum CompanySize
    {
    Small,
    Medium,
    Large
    }
    }

2.工作等级的

复制代码

1.2 创建数据库层

1. 安装Persistance层需要的库

2. 创建ResumeDbContext

  • 这里定义表的关系

3. 添加数据库配置/注册DBContext

  1. API层数据库连接appsettings.json

    {
    "Logging": {
    "LogLevel": {
    "Default": "Information",
    "Microsoft.AspNetCore": "Warning"
    }
    },
    "ConnectionStrings": {
    "ResumeDBConnectionStrings": "Server=.;Database=ResumeDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;"
    },
    "AllowedHosts": "*"
    }

  2. 在Persistance层创建PersistanceRegistration.cs文件

    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;

    namespace ResumenManagement.Persistance
    {
    public static class PersistanceRegistration
    {
    public static void AddPersistanceRegistration(this IServiceCollection services, IConfiguration configuration)
    {
    services.AddDbContext(options =>
    options.UseSqlServer(configuration.GetConnectionString("ResumeDBConnectionStrings")));
    }
    }
    }

  3. 在Api层里注册

4. 执行Add-Migration

  • 注意:如果从新添加了文件夹,一定要build项目之后,重启项目,才会执行migration成功
  • 执行成功后,在数据里,就可以看到我们的表
相关推荐
1-1=010 小时前
C# 反射
c#·.net·.netcore
一叶星殇10 小时前
版本即契约:.NET 6 WebAPI 多版本治理与 Swagger 文档分治实践
mvc·.net
Jeff-Tsai11 小时前
Day 9:数据与定义分家,表单不必各自建类型
.net·架构设计·erp·definition-driven
步步为营DotNet11 小时前
.NET 可观测性选型:Metrics、ActivitySource、EventSource 到底该用哪个
c#·.net·metrics·可观测性
CSharp精选营12 小时前
我把 Ant Design Blazor 翻了一遍:Blazor 中后台组件库到底能不能用
.net·blazor·ant design blazor·中后台系统·mudblazor
IT规划师12 小时前
Redis 数据类型全解 - ZSet:两个编码,七种玩法(五)
redis·.net
rockey6271 天前
AScript之字符串模板
c#·.net·script·expression·动态脚本
玩泥巴的1 天前
源生成与 AOT 就绪的微信生态 .NET SDK:结构、能力边界与 API 定位方法
ai·微信·.net·agent·aot·roslyn
1-1=01 天前
C# 泛型
c#·.net·.netcore
有志冬瓜1 天前
.NET Framework全部版本离线下载安装教程
安全·.net·软件需求