Code First与同一个表有多个关系

时间:2014-05-18 07:51:07

标签: c# ef-code-first entity-framework-6

我有一个名为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' s。添加的3个新字段包括:IssuedBy_UserIdVeiriedBy_UserIdReceivedBy_UserId。我可以看到这里使用的惯例,但我想知道我是否可以选择名称myselsf。

1 个答案:

答案 0 :(得分:0)

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

public int IssuedById { get; set; }
[ForeignKey("IssuedById")]
public virtual User IssuedBy { get; set; }

数据库中的列将具有IssuedById属性生成的名称。如果您想要更改它,可以使用Column属性。