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成功
  • 执行成功后,在数据里,就可以看到我们的表
相关推荐
唐青枫6 小时前
C#.NET dapper 详解
c#·.net
Maybe_ch9 小时前
.NET-键控服务依赖注入
开发语言·c#·.net
liulilittle12 小时前
C++/CLI与标准C++的语法差异(一)
开发语言·c++·.net·cli·clr·托管·原生
界面开发小八哥14 小时前
界面组件DevExpress WPF中文教程:Grid - 如何过滤节点?
.net·wpf·界面控件·devexpress·ui开发
SEO-狼术20 小时前
List & Label now includes Crack
.net
追逐时光者2 天前
推荐 6 款基于 .NET 开源的串口调试工具,调试效率提升利器!
后端·.net
界面开发小八哥2 天前
界面控件DevExpress WPF v25.1新版亮点:模板库更新升级
ui·.net·wpf·界面控件·devexpress·ui开发
追逐时光者2 天前
一款超级经典复古的 Windows 9x 主题风格 Avalonia UI 控件库,满满的回忆杀!
后端·.net
会写代码的建筑师3 天前
在 swagger 中支持 asp.net core 可选路由参数
后端·.net
布伦鸽3 天前
Visual Studio 2010-.Net Framework 4.0-DevExpress安装
ide·.net·visual studio