Код: Выделить всё
var previousAudit = DbContext.AuditInspections
.AsNoTracking()
.Where(i => i.CreationDateTime >= financialYearStart.AddYears(-1) &&
i.CreationDateTime i.CreationDateTime)
.Select(i => new
{
i.Id,
i.AuditDateTime,
i.DeadlineDateTime,
Score = i.AuditInspectionQuestionModels
.GroupBy(q => new
{
q.AuditQuestionPriority,
q.AuditChoice
})
.Select(g => new
{
g.Key.AuditQuestionPriority,
g.Key.AuditChoice,
Count = g.Count()
})
.ToList()
})
.FirstOrDefault();
Код: Выделить всё
SELECT [t].[Id], [t].[AuditDateTime], [t].[DeadlineDateTime], [t].[Id0], [t0].[AuditQuestionPriority], [t0].[AuditChoice], [t0].[Count]
FROM (
SELECT TOP(1) [a].[Id], [a].[AuditDateTime], [a].[DeadlineDateTime], [f].[Id] AS [Id0], [a].[CreationDateTime]
FROM [AuditInspections] AS [a]
INNER JOIN [FlowStates] AS [f] ON [a].[FlowStateModelId] = [f].[Id]
WHERE [a].[CreationDateTime] >= @__AddYears_0 AND [a].[CreationDateTime]
Когда я преобразую запрос linq в IEnumerable, ошибка устранена:
[code] var previousAudit = DbContext.AuditInspections
.AsNoTracking()
.Where(i => i.CreationDateTime >= financialYearStart.AddYears(-1) &&
i.CreationDateTime i.CreationDateTime)
.Include(auditInspectionModel => auditInspectionModel.AuditInspectionQuestionModels)
.ToList()
.Select(i => new
{
i.Id,
i.AuditDateTime,
i.DeadlineDateTime,
Score = i.AuditInspectionQuestionModels
.GroupBy(q => new
{
q.AuditQuestionPriority,
q.AuditChoice
})
.Select(g => new
{
g.Key.AuditQuestionPriority,
g.Key.AuditChoice,
Count = g.Count()
})
.ToList()
})
.FirstOrDefault();
простое удаление строки:5 из запроса linq также устраняет ошибку:
i.SiteModelId == инспекцияData.SiteId &&
Код: Выделить всё
inspectionData.SiteIdМожет ли кто-нибудь объяснить, почему я получаю эту ошибку ?
Я использую .net 8.0
Подробнее здесь: https://stackoverflow.com/questions/784 ... or-anomaly