범주 아래에 그룹화 된 데이터베이스의 데이터를 표시 할 수있게하려고합니다. 응용 프로그램은 작업 표 응용 프로그램에서 시도입니다.항목을 Linq로 그룹화하고 MVC보기의 표에 표시합니다.
(table) TimeSegments
TimeSegmentID
Hours
Date
ConsultantID (FK)
TaskID (FK)
ProjectID (FK)
(table) Projects
ProjectID
ProjectName
(table) Tasks
TaskID
TaskName
(table) Consultants
ConsultantID
ConsultantName
내가 모델 (여기라는 TS)에서 데이터를 얻고 표시 할 수 있습니다,하지만 난 프로젝트와 작업하여 시간을 표시 할 수 있도록 그룹화 싶은 : 데이터베이스 스키마는 다음과 같습니다. 지금까지 내 시도가 있습니다. 나는 Linq에의 그룹 문이 적절할 것 짐작하지만 맞습니다 나도 몰라 :
public IList<TimeSegment> TimeSegmentsByProject
{
get
{
var projectGroups = from timeSegment in ts.TimeSegments
group timeSegment by timeSegment.Project
into projectGroup
select projectGroup;
return projectGroups.ToList(); //Doesn't work
}
}
지금이 실패를, 결과는 컴파일러에 따라리스트로 변환 할 수 있기 때문이다. 나는이 표현이 내게 컬렉션 컬렉션을 줄 것이라고 생각했고, 이것을 반환하고 컨트롤러에서 가져 와서 뷰를보기 위해 전달할 수있을 것이라고 생각했습니다. 명백하게.
그럼 어떻게해야합니까? 누구든지 올바른 유형을 반환하는 방법을 보여줄 수 있고, 또한보기가 프로젝트를 수신 할 수있는 방법을 보여주고 프로젝트별로 분류하여 표시하는 것이 바람직하다면 정말 감사하겠습니다.
편집 :
이 (아래 The_Smallest에 의해 제안 복귀 형) 중 하나를 작동하지 않습니다
는public IGrouping<Project, TimeSegment> TimeSegmentsByProject
{
get
{
var projectGroups = from timeSegment in ts.TimeSegments
group timeSegment by timeSegment.Project
into projectGroup
select projectGroup;
return projectGroups;
}
}
컴파일러는 유형이 유사 (이러한 유형의 [blabla]에 IQueryable로 변환 할 수 없습니다 말한다 반환 유형은 IQueryable입니다.
위의 업데이트를 참조하십시오. – Anders
실수로 죄송합니다. 업데이트를 참조하십시오. 반환 형식은 IEnumerable 여야합니다.> –
감사합니다. 이제 효과가있었습니다. – Anders