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();
}
posted @ 2024-07-07 10:18  龙卷风吹毁停车场  阅读(2)  评论(0编辑  收藏  举报