一个模型中相同 属性 的多个实例

Multiple instances of the same Property in one Model

这是我的模型代码:

public class Dog
{
    [Key]
    public int DogID { get; set; }

    [Required()]
    [Display(Name = "Namn")]
    public string DogName { get; set; }

    [Required()]
    public int KennelID { get; set; }
    [ForeignKey("KennelID")]
    public virtual Kennel Kennel { get; set; }

    [Required()]
    public int RaceID { get; set; }
    [ForeignKey("RaceID")]
    public virtual Race Race1 { get; set; }

    public int RaceID { get; set; }
    [ForeignKey("RaceID")]
    public virtual Race Race2 { get; set; }

    public int RaceID { get; set; }
    [ForeignKey("RaceID")]
    public virtual Race Race3 { get; set; }

    public int RaceID { get; set; }
    [ForeignKey("RaceID")]
    public virtual Race Race4 { get; set; }

错误信息:

Models.Dog' already contains a definition for 'RaceID'
Models.Dog' already contains a definition for 'RaceID'
Models.Dog' already contains a definition for 'RaceID'

我不明白为什么 MVC 一开始就不让我这样做!为什么模型不能有多个属性 (Race1, Race2, Race3, Race4) 从 Race 模型的 RaceID ForeignKey 属性 中选择?

这真让我恼火。我查看了有关此错误的一些搜索结果,但我不理解它们。

所以问题是:我如何将一个 属性 的多个实例添加到一个模型? 我在控制器中读到了一个 AllowMultiple 片段,但我需要理解我在构建什么。

是否有任何指南可以让我更好地理解模型关系? 我更喜欢视频或分步式的指南。

你不能有多个 class 成员同名(在你的例子中是 RaceID)。

更改为:

public int Race2ID { get; set; }
[ForeignKey("Race2ID")]
public virtual Race Race2 { get; set; }

等等。 Race2ID将是第二场比赛的id。