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<Job> 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<Candidate> 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<ResumeDbContext>(options =>
    options.UseSqlServer(configuration.GetConnectionString("ResumeDBConnectionStrings")));
    }
    }
    }

  3. 在Api层里注册

4. 执行Add-Migration

  • 注意:如果从新添加了文件夹,一定要build项目之后,重启项目,才会执行migration成功
  • 执行成功后,在数据里,就可以看到我们的表
相关推荐
Aevget6 小时前
DevExpress WPF中文教程:Data Grid - 如何使用虚拟源?(二)
.net·wpf·界面控件·devexpress·ui开发·数据网格
从孑开始8 小时前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
玩泥巴的16 小时前
.NET驾驭Word之力:基于规则自动生成及排版Word文档
c#·word·.net·com互操作
专注VB编程开发20年16 小时前
VB.NET多线程排序算法实现:LINQ与正则表达式方法
排序算法·.net·linq
EQ-雪梨蛋花汤21 小时前
【踩坑记录】从“正在还原所需的工具包”说起:一次 .NET 工程包还原失败的完整排查实录
.net
喵叔哟1 天前
63.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--预算告警
运维·微服务·.net
专注VB编程开发20年1 天前
VB.NET2003和VB2008可以导入VB6项目
.net·vb.net·vb6·vb2008
喵叔哟1 天前
62.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--自训练ML模型
微服务·架构·.net
追逐时光者1 天前
将 EasySQLite 解决方案文件格式从 .sln 升级为更简洁的 .slnx
后端·.net
专注VB编程开发20年2 天前
C#,VB.NET数组去重复,提取键名和重复键和非重复键
c#·.net·linq·取唯一键·去重复·重复数量