ToList()[0] 和 FirstOrDefault() 之间的区别

Difference between ToList()[0] and FirstOrDefault()

我正在调试 MVC6 (beta7) 应用程序。我发现,如果我执行这个测试代码,该集合就会有元素(因为它应该)。

reservations.ToList()[0].RequestedVehicleType.Photos // Photos.Count == 1

对于相同的数据,原始代码导致一个空集合。

reservations.FirstOrDefault().RequestedVehicleType.Photos // Photos.Count == 0

更奇怪的是,如果我在执行第二个代码之前调用reservations.ToList(),结果是好的。

reservations.ToList();
reservations.FirstOrDefault().RequestedVehicleType.Photos // Photos.Count == 1

我了解到 MVC6 目前处于测试阶段,可能存在错误。我的问题是这是预期行为还是错误?

所有导航属性 方案未在 beta 7 中实现,请等待 beta 8 and/or 尝试每日构建