제 애플리케이션에서 여러 테이블의 데이터를 표시하는 쿼리를 작성해야합니다. 즉, 여러 테이블에 대한 조인을 만들고이 쿼리에서 원하는 정보를 표시하는 쿼리를 만들어야합니다. 쿼리는 특정 (선택한) 작업자에 대한 모든 이벤트 (및 DataGrid의 이벤트에 대한 모든 데이터)를 표시해야합니다. strSplit 특정 (선택) 노동자입니다C#의 다중 조인 테이블에 대한 Linq 쿼리
IList dataList = (from dWorker in App.glidusContext.tbl_workers
where dWorker.workerTZ == strSplit
join d2 in App.glidusContext.tbl_workers_has_tbl_events
on dWorker.workerID equals d2.workerID
join dEvent in App.glidusContext.tbl_events
on d2.eventID equals dEvent.eventID
join dAct in App.glidusContext.tbl_activities
on d2.eventID equals dAct.eventID
select new { d2.damagedVacantionEnd, dEvent, dAct }).ToList();
return dataList;
: 여기
내 LINQ의 코드입니다. 데이터 그리드의XAML 코드 :
<DataGrid.Columns>
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_Event_type}"
Width="130"
IsReadOnly="True"
Binding="{Binding Path=dEvent.tbl_eventsType.eventTypeName}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_Classification}"
Width="130"
Binding="{Binding Path=dEvent.tbl_eventsClassification.eventClassificationName}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_Catagory}"
Width="130"
Binding="{Binding Path=dEvent.tbl_eventsCategories.eventCategoryName}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_Evacuation}"
Width="130"
Binding="{Binding Path=d2.damagedEvacuationDescription}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_EvacuationStart}"
Width="130"
Binding="{Binding Path=d2.damagedVacantionStart}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_EvacuationEnd}"
Width="130"
Binding="{Binding Path=d2.damagedVacantionEnd}" />
<DataGridTextColumn Header="{x:Static res:Resources.WinSafetyByEmployee_DataGrid_ColHead_ActivityName}"
Width="*"
Binding="{Binding Path=dAct.activityName}" />
</DataGrid.Columns>
, 지금이 변형 값을 반환하지 않습니다,이 쿼리를 해결하는 방법을 도와주세요.
연결 테이블 tbl_object_has_tbl_events 및 App.glidus가 그러한 테이블을 표시하지 않아야한다고 생각하기 때문에 쿼리의 tbl_objects에 연결할 수 없습니다. (나는 당신의 탐색 속성이 호출됩니다 정확히 모르겠어요)
:
예를 들어
는 그런 다음 XAML에서 당신은 간단한 바인딩 식을 수 있을까요? 그렇다면 생성 된 designer.cs 클래스를 열고 tbl_objects_has_tbl_events 클래스를 복사하여 질문에 붙여 넣을 수 있습니까? 또한 dbml 파일을 손으로 또는 도구 (예 : sqlmetal)를 통해 어떻게 생성합니까? –안녕하세요, 실제로는 ADO.NET Entity Framework를 사용하고 DBML이 아닌 EDMX 파일을 생성합니다. EDMX 파일 Visual Studio Whizard에서 SQL Server 인스턴스를 설정하고 DB를 선택하고이 DB의 모든 테이블을 선택합니다. 그 후 ERD가 생성되고 자동 생성 클래스를 통해 테이블에 액세스 할 수 있습니다. –