Skip to content

Instantly share code, notes, and snippets.

@FransBouma
Created September 16, 2015 11:21
Show Gist options
  • Save FransBouma/29b438a5413ef81972f0 to your computer and use it in GitHub Desktop.
Save FransBouma/29b438a5413ef81972f0 to your computer and use it in GitHub Desktop.
Linq Query that EF doesn't like: DbUnionAllExpression requires arguments with compatible collection ResultTypes. No way to tell it to do the proper projections in memory and just fetch the data! LLBLGen Pro handles it just fine.
return baseQuery.Select(p__0 => new DTOs.DtoClasses.BoardMemberDTO()
{
CompanyCar = new DTOs.DtoClasses.BoardMemberDTOTypes.CompanyCarDTO()
{
Brand = p__0.CompanyCar.Brand,
CarId = p__0.CompanyCar.CarId,
},
CompanyCarId = p__0.CompanyCar.CarId,
EmployeeId = p__0.EmployeeId,
ManagesDepartmentId = p__0.ManagesDepartment.DepartmentId,
ManagesDepartmentName = p__0.ManagesDepartment.Name,
Name = p__0.Name,
StartDate = p__0.StartDate,
WorksForDepartment = new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTO()
{
Employees = p__0.WorksForDepartment.Employees.OfType<InheritanceOneReverseEngineering.EntityClasses.Employee>()
.Where(p__1 => !(p__1 is InheritanceOneReverseEngineering.EntityClasses.Manager) &&
!(p__1 is InheritanceOneReverseEngineering.EntityClasses.Clerk) &&
!(p__1 is InheritanceOneReverseEngineering.EntityClasses.BoardMember))
.Select(p__1 => new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTOTypes.EmployeeDTO()
{
Name = p__1.Name,
})
.Union(p__0.WorksForDepartment.Employees.OfType<InheritanceOneReverseEngineering.EntityClasses.Manager>()
.Where(p__1 => !(p__1 is InheritanceOneReverseEngineering.EntityClasses.BoardMember))
.Select(p__1 => new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTOTypes.EmployeeManagerDTO()
{
ManagesDepartment = new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTOTypes.EmployeeManagerDTOTypes.ManagesDepartmentDTO()
{
DepartmentId = p__1.ManagesDepartment.DepartmentId,
DepartmentType = p__1.ManagesDepartment.DepartmentType,
MeetingRoomCode = p__1.ManagesDepartment.MeetingRoomCode,
Name = p__1.ManagesDepartment.Name,
},
ManagesDepartmentId = p__1.ManagesDepartment.DepartmentId,
}))
.Union(p__0.WorksForDepartment.Employees.OfType<InheritanceOneReverseEngineering.EntityClasses.Clerk>()
.Select(p__1 => new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTOTypes.EmployeeClerkDTO()
{
JobDescription = p__1.JobDescription,
}))
.Union(p__0.WorksForDepartment.Employees.OfType<InheritanceOneReverseEngineering.EntityClasses.BoardMember>()
.Select(p__1 => new DTOs.DtoClasses.BoardMemberDTOTypes.WorksForDepartmentDTOTypes.EmployeeBoardMemberDTO()
{
CompanyCarId = p__1.CompanyCar.CarId,
}))
.ToList(),
Name = p__0.WorksForDepartment.Name,
},
WorksForDepartmentId = p__0.WorksForDepartment.DepartmentId,
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment