代码首先与多个关系到同一个表

本文关键字:关系到 同一个 代码 | 更新日期: 2023-09-27 18:03:47

我有一个名为ShipDoc的类型它引用了3 Users:

public class User
{
    public int UserId { get; set; }
    public string UserName { get; set; }
    public DateTime EmploymentDate { get; set; }
}
public class ShipDoc
{
    public int ShipDocId { get; set; }
    public DateTime CreationDate { get; set; }
    //....
    public int IssuedById { get; set; } //redundant
    public virtual User IssuedBy { get; set; }
    public int? VeiriedById { get; set; } //redundant + Nullable
    public virtual User VerifiedBy { get; set; }
    public int? ReceivedById { get; set; } //redundant + Nullable
    public virtual User ReceivedBy { get; set; }
}

运行Update-Database命令时,除了标记为冗余的字段外,EF还添加了3个其他字段并将其用作FK。新增3个字段:IssuedBy_UserIdVeiriedBy_UserIdReceivedBy_UserId。我可以看到这里使用的约定但我想知道我是否可以自己选择名称

代码首先与多个关系到同一个表

您可以使用ForeignKey属性将int字段用作外键。

public int IssuedById { get; set; }
[ForeignKey("IssuedById")]
public virtual User IssuedBy { get; set; }
数据库中的

列的名称将由IssuedById属性生成。如果你想改变,你可以使用Column属性