文章目录
- 项目地址
- 一、创建项目所需要的表
-
- [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)
项目地址
-
教程作者:
-
教程地址:
-
代码仓库地址作者:
https://github.com/mohammad-taheri1/Youtube-Resume-Management-dotnet-react-ts
-
代码仓库自己:
一、创建项目所需要的表

1.1 创建实体层
1. Entities
-
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;
}
} -
Company.cs
: 里面有Job的Collectionnamespace ResumeManagement.Domain.Entities
{
public class Company:BaseEntity
{
public string Name { get; set; }
public CompanySize Size { get; set; }
//relations 一对多
public ICollection<Job> Jobs { get; set; }
}
} -
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; }
}
} -
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 存放枚举
-
公司规模的枚举
namespace ResumeManagement.Domain.Enums
{
public enum CompanySize
{
Small,
Medium,
Large
}
}
2.工作等级的
1.2 创建数据库层

1. 安装Persistance层需要的库

2. 创建ResumeDbContext
- 这里定义表的关系
3. 添加数据库配置/注册DBContext
-
API层数据库连接
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"ResumeDBConnectionStrings": "Server=.;Database=ResumeDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True;"
},
"AllowedHosts": "*"
} -
在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")));
}
}
} -
在Api层里注册

4. 执行Add-Migration
- 注意:如果从新添加了文件夹,一定要build项目之后,重启项目,才会执行migration成功
- 执行成功后,在数据里,就可以看到我们的表
