Здравствуйте, Holms, Вы писали:
H>Как видим условия из внутренего запроса игнорируются совсем.
H>Что делать?
Чтобы решить проблему именно с этим запросом — можно перенести условия подзапроса внутрь join, тогда они будут учитываться.
var q = from project in ctx.Project
orderby project.ProjectId
join schedule in ctx.ProjectSchedule.Where(gg => gg.BudgetedStart.HasValue && gg.BudgetedStart >= dtStart &&
gg.BudgetedStart <= dtEnd &&
!string.IsNullOrEmpty(gg.PhaseName)) on project.ProjectId equals schedule.ProjectId into g
from schedule in g.DefaultIfEmpty()
select new
{
project.ProjectId,
project.Name,
PhaseName = schedule != null ? schedule.PhaseName : string.Empty,
PhaseStart = schedule != null ? schedule.BudgetedStart : null,
PhaseEnd = schedule != null ? schedule.BudgetedCompletion : null
};
А вот с багом генерации запроса — тут к авторам надо...