【发布时间】:2018-08-07 08:35:34
【问题描述】:
有些事情我真的找不到答案:
db.Sensors.Where(s => s.Id == id).Single();
这里的 Single() 有必要吗?通常只会给出一个结果,但真的有必要添加它还是多余的?最佳做法是什么?
【问题讨论】:
-
Single()用于从Sensor返回单个对象,Where返回IEnumerable<Sensor>。 -
这取决于您的用例。然而
Where总是返回一个IEnumerable,而Single返回一个实例。我们不知道您需要什么。 -
Where 可能不返回任何内容或对象数组。 Single 确保您的查询返回一个且仅一个结果。
-
你可以通过
.Single(s => s.Id == id);得到同样的结果。 -
另外,请参阅此线程以供参考:stackoverflow.com/questions/2724096/linq-single-vs-first