2016-10-19 5 views
0

죄송합니다. 이미 답변 한 경우 내 시나리오에 맞는 답변을 찾을 수 없습니다.MVC - EF - 다중 외래 키 매핑

저는 엔티티 클래스와 뷰 모델을 가지고 있습니다.

법인 : 아래의 샘플

public class Data 
{ 
    [Key, Column(Order = 0)] 
    public int ID { get; set; } 

    [Column(Order = 1)] 
    public Q1Values Q1 { get; set; } 

    [Column(Order = 2)] 
    public Q1Values Q2 { get; set; } 

} 

의 ViewModel : 내가 가지고있는

public class DataViewModel 
{ 
    [Key, Column(Order = 0)] 
    public int ID { get; set; } 

    [Column(Order = 1)] 
    public int Q1ID { get; set; } 

    [Column(Order = 2)] 
    public int Q2ID { get; set; } 

    public List<Q1Values> Q1ValuesList {get;set;} 

} 

문제는 내가 같은 조회 테이블 'Q1Values'를 사용하여 50 개 이상의 질문을 모두 가지고 것입니다. 위의 문제는 삽입하기 전에 viewmodel에서 엔티티 모델로 FK 엔티티를 수동으로로드/매핑해야한다는 것입니다.

나는 그때

@Html.DropDownListFor(m=>m.Q1.ID, new SelectList(model.Q1Values,"ID","Name")) 

는하지만 여전히 컨트롤러에 완전히로드 된 개체에 매핑하는 저를 필요로 아래와 같이 드롭 다운을 매핑

public class DataViewModel 
{ 
[Key, Column(Order = 0)] 
public int ID { get; set; } 

[Column(Order = 1)] 
public Q1Values Q1ID { get; set; } 

[Column(Order = 2)] 
public Q1Values Q2ID { get; set; } 

public List<Q1Values> Q1ValuesList {get;set;} 

} 

뷰 모델로 아래 시도 그것은 ID 만 포함하기 때문입니다.

가장 좋은 방법은 무엇입니까? 각 질문에 대해 컨트롤러의 전체 엔티티를 매핑해야합니까? 오랫동안 많은 복제가 이루어 졌다고 봅니다.

내 엔티티 클래스에서 외래 키를 수동으로 정의하려고했지만 여러 FK에서 외래 키를 수동으로 정의하려고 시도하지 못했습니다. 아래를 참조하십시오.

public class QOLData 
{ 
    [Key, Column(Order = 0)] 
    public int ID { get; set; } 

    [Column(Order = 1)] 
    public int Q1 { get; set; } 

    [Column(Order = 2)] 
    public int Q2 { get; set; } 

    [ForeignKey("Q1,Q2")] 
    public virtual Q1Values Q1Values { get; set; } 
} 

답변