背景: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、Add-Migration
3、注释掉新的迁移类中的Up和Down方法里面的内容
4、update-database
总结:写好对应数据库表对应的实体类,生成的迁移类Up和Down中注释掉创建这个表的代码(欺骗EFCore,让它以为创建好了)