我们仍然在使用VS 2008的ECO5。“非eco”应用程序使用与我们的eco应用程序相同的数据库,并插入数据。除非我们重新启动这个应用程序,否则无法在生态应用程序中看到插入的数据(对象)。没有必要重新启动持久性服务器,我假设我们正确地插入了数据(尊重插入到ECOModelRoot并递增ECO_ID),因为生态应用程序在重启后正确地显示了它们。
我们尝试将ecospace.active设置为false,然后将其设置为true,并将ecospace.persistence.refresh(true)设置为true。插入的数据仍未显示,尽管在之前关闭了有关查询并在之后打开。
我们如何使生态应用程序看到“非生态”插入的对象?
发布于 2022-03-25 06:32:07
当您正确插入数据时,您的场景与两个独立的ECO应用程序正在写入同一个数据库的场景相同。
因此,为了能够回答您的问题,我们需要更多地了解您的应用程序体系结构,因为通常通过将活动设置为false来关闭ecospace就足够了。某些类型的闲聊仍在发生。
,
也有一些方法可以使特定对象或类的EcoSpace缓存失效,但是您必须首先找出您的问题所在。
发布于 2022-03-26 18:04:54
如果从“第三方应用程序”插入或更新对象,则可以使用selfVM.SuspectExternalUpdateInvalidate(listOfObjectsYouSuspect).
这样做将通知SyncServer (您在MDrivenServer中有一个同步服务器),该行需要被所有缓存该行的客户端完全重新读取。
客户端在执行下一次刷新时将获得此信息(可通过selfVM.Refresh和作为框架操作获得)。如果您使用MDrivenServer,客户端将通过推送通知得到通知,并快速更新其UI。
若要阅读更多内容并获得有关如何使用此功能的完整示例,请参见https://wiki.mdriven.net/index.php/SQL_Server_change_tracking
如果您使用MS,wiki中也有关于如何有效地自动跟踪表更改和刷新这些更改的示例。
注意!从2018年6月起,您需要一个框架才能获得此功能。
https://stackoverflow.com/questions/71600566
复制相似问题