Я изо всех сил пытаюсь реализовать то, что представляется относительно простым оператором LINQ, в котором я хочу вернуть объект из одного из двух мест в зависимости от того, существует он или нет, и получаю следующую ошибку при каждом повороте, который я совершаю.
System.ArgumentException: 'Argument types do not match'
Я пробовал много разных подходов, но всегда получаю одну и ту же ошибку, поэтому я не должен понимать, что я прошу обработчик LINQ.
Я пробовал другие подходы к структурированию моегоLINQ, но тот, который наиболее просто подчеркивает мою проблему, показан ниже:
.Select(
x => new
{
x.Interval,
x.Enrolment,
x.Response,
ResponseOffset = x.Response.ResponseIntervalOffset,
DefaultOffset = x.Interval.TblChecklistResponseIntervalOffset.FirstOrDefault(
o => o.TimeZoneId == (x.Enrolment.Entity.LocalTimeZoneId ?? defaultTimeZoneId))
})
.Select(x => new
{
x.Interval,
x.Enrolment,
x.Response,
Offset = x.ResponseOffset ?? x.DefaultOffset <-- THIS CAUSES ERROR
})
Иногда может быть смещение, связанное с ответом, но только если ответ существует, если ответ не существует, тогда я хочуиспользуйте DefaultOffset.
Поэтому, хотя я могу вернуть два смещения независимо, мне бы хотелось, чтобы один объект смещения содержал один или другой в зависимости от того, существует ли смещение отклика.