2012-04-10 2 views
0

방금 ​​ASP.NET MVC를 조사하기 시작했으며 최신 베타 (예 : 4)를 사용하고 있습니다. 나는 꽤 CRUD 시나리오에 대한 올바른 접근 방식을 취하고있다. 내 기본 테이블 (작업)이 같이 보입니다 -ASP.NET MVC - 외래 키 업데이트

TaskID를 (INT) 직원 ID (INT) ProjectID (INT) DeptID (INT) 코멘트 (VARCHAR) 날짜 (날짜) 시간 (플로트)

TaskID는 기본 키입니다. 나머지 세 ID는 모두 참조 테이블에 대한 외래 키입니다.

다양한 자습서를 따라 Entity Framework를 사용하여 개체 모델 (.edmx)을 만들었습니다. 그런 다음 "추가 ... 컨트롤러"를 사용하여 "컨트롤러를 읽기/쓰기 ..."템플릿을 사용하여 컨트롤러를 자동 생성했습니다.

모두 잘되었습니다. 그러나 분명히 ID가 아닌 참조 테이블의 조회 값을 표시하는 세 개의 외래 키 열이 필요합니다. 나는 이것을 달성하기위한 "모범 사례"방법이 무엇인지 정말로 확신하지 못합니다. 몇 가지 옵션이 나에게 발생 -

  1. 은 EF의보기 (이 작업을 수행하는 방법을 확실하지)
  2. 가에 LINQ를 사용하여 즉석에서 기준값을 봐 만들기 SQL Server의 뷰를 생성 컨트롤러

아마도 다른 방법이있을 수 있습니다. 이 시나리오에서 "우수 사례"와 관련하여 숙련 된 MVC 전문가의 의견을 듣고 싶습니다.

답변

2

public class TaskViewModel 
{ 
    public Task Task { get; set; } 
    public Dictionary<int, string> ProjectList { get; set; } 
    //rest of the Lookup Properties like DeptList, EmpList 
} 
public class Task 
{ 
    public int TaskId { get; set; } 
    public int projectId { get; set; } 
    //Rest of the properties 
} 

같은 속성 뭔가를해야합니다 그리고 사용하는 것이 TaskViewModel 클래스가하는 것을 선호

+0

당신이보기 모델을 채우는 것

@model TaskViewModel @Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%> 
? 컨트롤러에? –