2012-09-19 3 views
0

DataGridView에서 두 개의 관련 엔터티의 데이터를 표시하려고합니다. 난 그냥 이런 식으로 값을 선택할 수 있습니다 알고다른 엔터티의 데이터에 DataGridView 바인딩

from tasks in context.TaskSettings 
    join train in context.Trainings on tasks.TrainingID equals train.TrainingID 
    where tasks.TrainingID == task 
      select new {TrainingName = train.TrainingName, 
         DriversNeeded = tasks.DriversNeeded, 
         EmployeesPerSupervisor = tasks.EmployeesPerSupervisor}; 

그러나 그것은 나에게 불변의 가치를 제공하고 사용자가 바로 값을 편집하고 변경 사항 저장을 클릭 할 수 있도록 내 관심이있는 DataGridView에 그 값을 보이고있다.

나는이 다른 접근 방식

ObjectQuery<TaskSetting> trainingSettings = 
    (ObjectQuery<TaskSetting>)context.TaskSettings.Where(t => t.TrainingID == task); 
dgvTask.DataSource = trainingSettings.Execute(MergeOption.AppendOnly); 

을 시도했지만 그건 그냥

나는, 적어도으로부터 훈련 이름을 얻을 수 있도록하려면 하나의 열에서 전체 교육 기관을두고 트레이닝 엔티티와 데이터 컨텍스트를 변경하고 업데이트 할 수 있어야합니다. 나는 더 많은 도움이되는 그림을 게시하고 싶었지만 이것은 제 주먹의 질문입니다. 어떤 도움이라도 대단히 감사하겠습니다!

답변

1

Mediator Pattern을 더 잘 구현하지 마십시오. 두 엔터티를 중재자의 단일 속성에 바인딩하여 내부 편집을 관리 할 수 ​​있습니다. 그런 다음 DataGridView를 Mediator에 바인딩하고 각 엔터티에 대한 사용자 지정 업데이트를 관리하게합니다.

+0

저는 엔티티 프레임 워크에 익숙하지 않아 중재자 패턴을 사용하는 방법을 모르겠습니다. 나는 "커스텀 객체"와 비슷한 것을하려고 시도했다. 하지만 엔티티 매핑 부분에 집착했습니다. – Yoinazek

+0

@Yoinazek 기본적으로 저는 엔티티가 아닌 중간 클래스 인 C# 클래스에 대해 이야기하고 있습니다. 왜? 다른 엔티티의 두 속성에 대한 바인딩을 UI에 제공합니다. –

+0

그리고이 중산층은 값을 얻거나 설정하고 엔티티로 매핑하는 작업을 담당하게 될 것입니다. 알았다. 그것을하는 방법을 알아야합니다. hehe. 고마워요 – Yoinazek

관련 문제