非主键的外键,但仍然唯一

时间:2019-01-29 15:07:55

标签: entity-framework

我有2个类,我希望能够为不是该类主键的字段创建一个ForeignKey

我的BeerDispense需要使用一个名为MacAdrInt的int指向我的主人

通过这种方式,我可以使MacAdrInt字段指向主数据库的主键,但是我希望它指向MacAdrInt,这是否可行,还是需要将其设为我的主键?

public class Master
{
    [Key]
    public long Id { get; set; }
    public string MacAdr { get; set; }       
    public long MacAdrInt { get; set; }
    ...      
}


public class BeerDispense
{
    public long Id { get; set; }
    [ForeignKey("MacAdrInt")]
    public Master Master { get; set; }
    ...
}

1 个答案:

答案 0 :(得分:0)

  

我希望它指向MacAdrInt,这有可能还是我需要将其设为主键?

在EF Core中,可以使用Alternate Keys。在EF6中,您需要将MacAdrInt配置为Key属性。它不一定是 real 主键,但是EF6每个实体仅支持一个键。