[英]Linq FirstOrDefault returning multiple
我遇到一个奇怪的问题,即使linq语句具有.FirstOrDefault()
它也会返回多个实体。
var endlog = from e in endLogs
where e.user_id == log.user_id && e.end_time <= log.start_time
group e by e.end_time into g
select g.OrderByDescending(x => x.end_time).FirstOrDefault();
user_state_log eLog = endlog.SingleOrDefault();
这是在选择与提供的log
相比具有最近结束时间的log
。 我在user_state_log eLog = endlog.SingleOrDefault()
上user_state_log eLog = endlog.SingleOrDefault()
异常,指出该变量中有多个实体。 有任何想法吗?
您确定要使用group e by
而不是orderby
吗? 分组有可能包含多个实体。
您的FirstOrDefault
将应用于select
的结果,该结果对于每个组( g
)都会发生一次。 我相信结果是endlog
每个值endlog
将是一个项目而不是一个组。
您可能希望将FirstOrDefault
应用于查询而不是投影( select
):
var endlog = (from e in endLogs
where e.user_id == log.user_id && e.end_time <= log.start_time
group e by e.end_time into g
select g.OrderByDescending(x => x.end_time)).FirstOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.