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成功
  • 执行成功后,在数据里,就可以看到我们的表
相关推荐
搬砖工程师Cola9 小时前
<C#> 详细介绍.net 三种依赖注入:AddTransient、AddScoped、AddSingleton 的区别
开发语言·c#·.net
猿长大人1 天前
C# | 超简单CSV表格读写操作(轻松将数据保存到CSV,并支持读取还原)
c#·.net·上位机·winform·工控
追逐时光者1 天前
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
后端·.net
Lingbug1 天前
在.Net Core(.Net5)中使用开源组件SqlTableDependency来监听ms sqlserver的数据库数据变化
数据库·.net·.netcore
MicrosoftReactor1 天前
技术速递|.NET AI 模板现已提供预览版
人工智能·.net
追逐时光者2 天前
C# 中比较实用的关键字,基础高频面试题!
后端·c#·.net
Bright Data2 天前
如何在Visual Studio和 .NET 7中使用C#配置代理服务器进行网页抓取,并使用HtmlAgilityPack进行HTML解析
c#·.net·visual studio
.Net Core 爱好者2 天前
微软.NET框架下通信技术理解与实践
前端·c#·.net·.netcore
Linux Huang3 天前
已在此计算机上安装相同或更高版本的 .NET Framework 4”安装报错问题
.net