일부 특정 형식을 반환하고 싶은 다소 복잡한 쿼리가 있습니다.집계 LINQ 쿼리의 Entity Framework 개체 제한
이지정된 타입의 멤버 '날짜'가 는 LINQ에서 지원되지 않습니다 : 대부분 날짜/시간 계산 또는 문자열 값을 직결 된 엔티티 프레임 워크는 내가 System.DateTime 유형과 더 새로운 것을 시도 할 때 더미 침 것으로 보인다 엔티티에. 초기화 도구, 엔터티 멤버 및 엔터티 탐색 속성 만 을 지원합니다.
문제의 쿼리는 다음과 같습니다 위의 쿼리에서
// Here comes the aggregate query.
object summary = from te in ctx.TimeEntries
where te.StartTime >= startofweek
&& te.UserName == User.Identity.Name
group te by te.StartTime.Day into Groups
select new
{
Key = Groups.Key,
Count = Groups.Count(),
//Total = Groups.Sum(n => (double)((n.EndTime ?? DateTime.Now) - n.StartTime).TotalMinutes/60),
Tasks = from t in Groups
orderby t.StartTime descending
select new
{
Name = t.Task.TaskName,
Project = t.Task.Batch.Project.ProjectName,
Batch = t.Task.Batch.BatchName,
//Minutes = ((t.EndTime ?? DateTime.Now) - t.StartTime).Minutes,
Start = t.StartTime.Date,
Stop = t.EndTime,
Description = t.Notes,
Breaks = t.BreakFor ?? 0
}
};
이 재산 "시작"는 상기 오류와 함께 실패합니다. 그러나, 단순히 "Start = t.StartTime"이라면 모든 것이 잘될 것입니다. 마찬가지로 "Minutes"에 대한 주석 처리 된 값도 문제를 일으킬 수 있습니다.
제안을 환영합니다.
어쨌든. 나는 총을 내고 그것이 어떻게 보이는지 볼 것이다. 감사. –
그래, 그것은 치료를했습니다. 내 코드를 좀 더 우아하게 만들지는 않았지만 내가했던 자유를 확실히 제공했다. 다시 한번 감사드립니다. –