我正在努力实现似乎是一个相对简单的LINQ语句,在该语句中,我希望根据两个位置之一是否存在从两个位置之一返回一个对象,并且每次转动都会收到以下错误。 / p>
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。
因此,尽管我可以独立返回两个Offset,但我希望一个Offset对象包含一个或另一个对象,具体取决于Response偏移是否存在。