2012-05-15 2 views
0

난 그렇게처럼 내 응용 프로그램에서 몇 가지 모델이 있습니다 엔티티 프레임 워크 - ASP MVC 모델 - 관계

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; } 
} 

그래서 그것의 JIST입니다. 나는 Inquiry를 가지고 있으며, 각 Inquiry에는 일종의 Inquiry (Sales, General, Technical 등)가있다. 그래서 이것은 일대일 관계이다. 그런 다음 각 조회에는 여러 DeliveryTypes가 첨부되어 일대 다 관계를 가질 수 있습니다.

내 질문에 위의 모델을 올바르게 설정 했습니까? 내가 놓친 게 있니? 가상 장소가 잘못되었거나 올바르게 설정되지 않았습니까? DeliveryType 모델에 들어가기 위해서 EnquiryID이 필요합니까?

+0

거기에 문제가 있습니까? – Romias

답변

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; } 
} 
+0

응답 해 주셔서 감사합니다. 호기심 때문에,'DeliveryType'에서'EnquiryID'를 왜 없앨까요? 'DeliveryType'이 어떤 문의가 첨부되어 있는지 모른다면 관계는 어떻게 설정 될까요? – CallumVass

+0

DeliveryTypes를 사용하는 방법에 대해 혼란스러워합니다. 하나의 DeliveryType이 많은 문의와 관련 될 수 있습니까? 아니면 각 DeliveryType이 하나의 문의에만 속합니까? 후자가 사실이라면 올바른 것입니다. EnquiryId를 DeliveryType의 등록 정보에 추가해야합니다. – MattSavage

+0

그래, 후자는 사실이다, 혼란에 대한 미안 해요! 답변 해주셔서 감사합니다! – CallumVass