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

时间:2015-03-29 12:10:07

标签: c# asp.net-mvc 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模型中的RaceID ForeignKey属性中选择的多个属性(Race)?

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

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

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

1 个答案:

答案 0 :(得分:0)

您不能拥有多个具有相同名称的类成员(在您的情况下为RaceID)。

更改为:

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

等等。 Race2ID将是第二场比赛的身份。