0

次のように、アプリにモデルがいくつかあります。

public class Enquiry
{
    [Key]
    [Required]
    public int EnquiryID { get; set; }

    [Required]
    [Display(Name = "Enquiry Type:")]
    public virtual int EnquiryTypeID { get; set; }
    public virtual EnquiryType EnquiryType { get; set; }

    public virtual ICollection<DeliveryType> DeliveryTypes { get; set; }

}

public class EnquiryType
{
    [Key]
    public int EnquiryTypeID { get; set; }

    [Display(Name = "Enquiry Type:")]
    [MaxLength(100)]
    public string EnquiryTypeName { get; set; }
}

public class DeliveryType
{
    [Key]
    public int DeliveryTypeID { get; set; }
    public int EnquiryID { get; set; }
    public string DeliveryName{ get; set; }
}

それで、それの要点は次のとおりです。お問い合わせがあります。各お問い合わせにはお問い合わせの種類 (販売、一般、技術など) があるため、これは 1 対 1 の関係です。各 Inquiry には複数の DeliveryTypes を関連付けることができるため、1 対多の関係になります。

私の質問は、上記のモデルでこれを正しく設定しましたか? 何か不足していますか?仮想の場所が間違っているか、正しく設定されていませんか? EnquiryIDDeliveryType モデルに参加する必要がありますか?

4

1 に答える 1

1

DeliveryTypeモデルではEnquiryIDは必要ありません。ただし、InquiryのEnquiryTypeIDは仮想であってはなりません。私はそれを次のように設定します:

public class Enquiry
{
    [Key]
    [Required]
    public int EnquiryID { get; set; }

    [Required]
    [Display(Name = "Enquiry Type:")]
    public int EnquiryTypeID { get; set; }

    public virtual EnquiryType EnquiryType { get; set; }
    public virtual ICollection<DeliveryType> DeliveryTypes { get; set; }

}

public class EnquiryType
{
    [Key]
    public int EnquiryTypeID { get; set; }

    [Display(Name = "Enquiry Type:")]
    [MaxLength(100)]
    public string EnquiryTypeName { get; set; }
}

public class DeliveryType
{
    [Key]
    public int DeliveryTypeID { get; set; }
    public string DeliveryName{ get; set; }
}
于 2012-05-15T20:20:49.367 に答える