죄송합니다. 이미 답변 한 경우 내 시나리오에 맞는 답변을 찾을 수 없습니다.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; }
}