Mob*_*isk 5 c# entity-framework
我们的团队正在开发一种机器,该机器将在装有医疗样本小瓶的托盘上执行物理过程。物理过程大约需要 1.5 小时。托盘和相关小瓶是实体,使用实体框架从数据库加载。随着流程的运行,设备将更新实体上的值。这些变化可能相隔几分钟或几秒钟发生。在某些步骤结束时,相隔 10 到 45 分钟,我们希望将这些实体保存回数据库,然后继续。
实体框架上下文打开 1.5 小时是否可以接受?我可以使用该上下文在该时间段内多次更改和保存实体吗?如果没有,处理这个问题的最佳方法是什么?
到目前为止的一些想法:
2 和 3 的组合将是理想的。
首先,不要让上下文一次打开几个小时。您可以通过配置来完成此操作,但考虑到您正在执行 90 分钟的操作并且打开连接大约需要 3 毫秒,这只会浪费资源。
因此,只需根据需要创建一个上下文即可。接下来,请记住,虽然您打开上下文来收集数据或维护状态,但如果数据尚未准备好存储,则实际上不需要保存数据。您只需将其存储在本地即可。
这就是步骤 3 的用武之地,即本地内存。基本上,您应该将其保存在本地内存中,并附加一个事件处理程序。当本地副本发生更改时,如果更改发生在某个可接受的时间范围内,则更新数据库。
| 归档时间: | 
 | 
| 查看次数: | 2227 次 | 
| 最近记录: |