EFCore 设置外键
---------------------------------------------------------第一种- 在Fluent API中设置外键--------------------------------------------------------------------------
public class Book { /// <summary> /// id /// </summary> public int Id { get; set; } /// <summary> /// 书本名称 /// </summary> public string Name { get; set; } /// <summary> /// 价格 /// </summary> public decimal Price { get; set; } /// <summary> /// 所属类型 /// </summary> public string Type { get; set; } /// <summary> /// 添加时间 /// </summary> public DateTime CreatTime { get; set; } public int PostId { get; set; } }
public class Post { /// <summary> /// 借书人 /// </summary> public int PostId { get; set; } /// <summary> /// 姓名 /// </summary> public string PostName { get; set; } /// <summary> /// 性别 /// </summary> public string Sex { get; set; } /// <summary> /// 住址 /// </summary> public string Address { get; set; } }
如果是在 Fluent API 中如下配置
如果是在 OnModelCreating 方法中
然后执行以下数据迁移即可
-------------------------------------------------------------------------------------------第二种-----------------------------------------------------------------------------------------------------
public class Book { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public string Type { get; set; } public DateTime CreatTime { get; set; } public int PostId { get; set; } public Post Posts { get; set; } }
public class Post { public int PostId { get; set; } public string PostName { get; set; } public string Sex { get; set; } public string Address { get; set; } }
-----------------------------------------------------第三种, 通过导航的形式实现默认外键(默认外键规则: Id或者类名+Id)----------------------------------------------------------------------
随便搞两个实体类举例: 标红处所展示会生成外键关系
public class Book { /// <summary> /// id /// </summary> public int Id { get; set; } /// <summary> /// 书本名称 /// </summary> public string Name { get; set; } /// <summary> /// 价格 /// </summary> public decimal Price { get; set; } /// <summary> /// 所属类型 /// </summary> public string Type { get; set; } /// <summary> /// 添加时间 /// </summary> public DateTime CreatTime { get; set; } public int PostId { get; set; } }
public class Post { /// <summary> /// 借书人 /// </summary> public int PostId { get; set; } /// <summary> /// 姓名 /// </summary> public string PostName { get; set; } /// <summary> /// 性别 /// </summary> public string Sex { get; set; } /// <summary> /// 住址 /// </summary> public string Address { get; set; } public List<Book> Books { get; set; } = new(); }