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成功
  • 执行成功后,在数据里,就可以看到我们的表
相关推荐
宁&沉沦15 小时前
前端开发者学 .NET:零基础到部署上线
.net
我是唐青枫15 小时前
C#.NET ObjectPool 深入解析:对象复用、池化策略与使用边界
c#·.net
宁&沉沦17 小时前
.NET 常见文件与扩展名含义(速查)
.net
叫我黎大侠18 小时前
.NET 实战:调用千问视觉模型实现 OCR(车票识别完整教程)
阿里云·ai·c#·ocr·asp.net·.net·.netcore
唐青枫18 小时前
C#.NET ValueTaskSource 深入解析:零分配异步、ManualResetValueTaskSourceCore 与使用边界
c#·.net
公子小六19 小时前
基于.NET的Windows窗体编程之WinForms事件简介
windows·microsoft·c#·.net
军训猫猫头19 小时前
7.带输入参数的线程启动 C# + WPF 完整示例
开发语言·前端·c#·.net·wpf
CSharp精选营20 小时前
AutoMapper三板斧:值转换器、条件映射、自定义解析器,复杂映射不再愁
c#·.net·automapper