实体框架7外键列名称

时间:2016-02-19 12:04:13

标签: c# entity-framework entity-framework-core

我有一个MasterUserApprovalOfficial实体,有两个外键,MasterUserId和SoftwareSystemId。 EF 7非常聪明,可以确定这两个属性是外键。这是我的MasterUserApprovalOfficial类

public class MasterUserApprovalOfficial
{
    public int MasterUserApprovalOfficialId { get; set; }

    public int MasterUserId { get; set; }

    public MasterUser MasterUser { get; set; }

    public int SofwareSystemId { get; set; }

    public SoftwareSystem SoftwareSystem { get; set; }

    public bool Active { get; set; }

    public DateTime CreateDate { get; set; }

    public MasterUserApprovalOfficial()
    {
        CreateDate = DateTime.Now;
    }
}

如果我查看创建的表,MasterUserId列已创建并按预期命名,则SoftwareSystemId列创建为SoftwareSystemSoftwareSystemId(附加到主键名称的类名称)< / p>

enter image description here

这有什么理由吗?

2 个答案:

答案 0 :(得分:3)

public int SofwareSystemId { get; set; }

再次阅读该属性。那里有一个缺失:)

第二个答案也是对的,你不需要外键的属性。这个班的成员就够了

答案 1 :(得分:1)

使用ForeignKeyColumn属性来解决此问题:

[ForeignKey("SoftwareSystem"),Column("SoftwareSystemId")]
public int SoftwareSystemId { get; set; }

默认情况下,外键后面会加上“Id”,但由于你已经拥有一个具有该名称的属性(并且EF不能识别它是外键,因此它会变为SoftwareSystemSoftwareSystemId

相关问题