我有一些从基类 "BaseTask" 派生出的类。
- Task1
- Task2
Task3
return DbContext.Projects.Include(t => t.Tasks).Select(p => new ProjectDto { Id = p.Id, Name = p.Name, Tasks = p.Tasks.Select(t => new TaskDto() { Id = t.Id, Name = t.Name, ProjectId = t.ProjectId, Selector = !(t is Task1) ? t.Selector : null, Task2Property = (t is Task2) ? ((Task2)t).Task2Property : null, SelectorPosition = (t is Task3) ? ((Task3)t).SelectorPosition : null, KeyId = t.KeyId }).ToList() } );
代码的这一部分返回以下错误:
无法将类型“Task”强制转换为类型“Task1”。LINQ to Entities 仅支持将 EDM 原始或枚举类型进行强制转换。
我该如何解决这个问题?
IQueryable
实现化之后执行DTO转换。 - ASpirin