1
4
不,没有,但是你忽略了一些概念。
因为您使用异步方法,所以
这对你很有用: Async/Await - Best Practices in Asynchronous Programming
|
2
1
如果可以在循环外运行一次,并过滤内存中的数据以对其执行操作,则可能需要重新考虑在foreach中执行DB调用。每个用例都是不同的,您必须确保更大的返回集可以在内存中处理。 通常,一次从DB获得1000行比10次获得100行快。 |
3
1
在这种特定的情况下,我会编写它来加载所有感兴趣传感器的所有属性的单个列表(考虑所有
然后,使用LINQ To Objects加入
|
4
0
您建议的方法,在每个
一个简单的例子:让我们用他们工作的公司的名称来查询人员:
假设我想要
在第一次和第二次查询之间,有人将面包店的名称更改为 你的结果是:
突然约翰和皮特在不同的公司工作?
如果你要求
当然这不是你想要的!
因此,如果需要一组表示查询时数据状态的一致数据,请使用一个查询创建数据: 一个数据库查询中的相同结果:
换句话说:来自
然后查询数据库表
请注意,尚未执行任何查询或枚举。尚未访问数据库。只有
如果需要,可以将这些语句连接到一个大型LINQ语句中。我怀疑这是否会提高性能,它肯定会降低可读性,从而降低可测试性/可维护性。 在一个数据库查询中获取所有所需属性后,可以更改它们:
只要你保持
因此,很少需要主动通知
我看到的唯一一个用例是,当您想要更改一个对象而不首先添加或获取它时,这可能是危险的,因为该对象的某些属性可能会被其他人更改。
|
Coding Dog · Python异步函数不工作。继续跑 1 年前 |
cyka · 强制JavaScript等待单击(循环) 2 年前 |
CodeMonkey · 无法访问React[重复]中的对象值 2 年前 |
Tim · 为异步方法返回列表的最佳方式是什么? 2 年前 |
dapidmini · 未捕获的承诺嵌套异步函数承诺错误处理 2 年前 |