背景:EFCore默认的会自动创建数据表,但是有时又是DBFirst,数据库写好了要用现成的表。这个时候就需要进行一些特殊的操作了
1、写出跟要对接数据库的实体类
比如我的表是这样创建的
create table mail_test
(
user_id bigint auto_increment comment '用户ID'
primary key,
dept_id bigint null comment '部门ID'
)
那么对应的实体类就要对应得上
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
[Table("mail_test")] // 显式指定数据库中的表名
public class MailTest
{
[Key] // 标记这是主键
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 标记主键值由数据库自动生成
[Column("user_id")] // 显式指定映射到数据库列的名称
public long UserId { get; set; }
[Column("dept_id")] // 同样,显式指定映射到数据库列的名称
public long? DeptId { get; set; }
}
-- 这个可以让ai写一下
2、注释DbContext
3、Add-Migration
4、注释掉新的迁移类中的Up和Down方法里面的内容
5、取消DbContext的注释
6、update-database