C# 当用户会话持有基于该数据表的数据视图时,处理对缓存数据表的更新
我的网站在一台服务器上运行。我正在缓存一个数据表。每个会话都有一个指向它自己的DataView的引用,该DataView引用该DataTable。我担心的是,当我需要对底层数据表进行更改时,它们是否会传播到对它的每个会话引用C# 当用户会话持有基于该数据表的数据视图时,处理对缓存数据表的更新,c#,asp.net,ado.net,datatable,dataview,C#,Asp.net,Ado.net,Datatable,Dataview,我的网站在一台服务器上运行。我正在缓存一个数据表。每个会话都有一个指向它自己的DataView的引用,该DataView引用该DataTable。我担心的是,当我需要对底层数据表进行更改时,它们是否会传播到对它的每个会话引用 或者有没有更好的方法来处理这种情况。原则上是的。如果继续使用相同的DataTable,更改将传播到视图。但是,根据您的实施方式,可能会出现问题: 在第一次生成缓存数据表时,可能会出现竞争情况:对服务器的多个请求可能会检测到缓存数据表不存在,并尝试生成它—在这种情况下,可能
或者有没有更好的方法来处理这种情况。原则上是的。如果继续使用相同的DataTable,更改将传播到视图。但是,根据您的实施方式,可能会出现问题:
- 在第一次生成缓存数据表时,可能会出现竞争情况:对服务器的多个请求可能会检测到缓存数据表不存在,并尝试生成它—在这种情况下,可能会有重复的数据表
- 如果重新生成缓存的数据表(例如,如果由于超时过期而将其从ASP.NET缓存中删除),则会话中的现有数据视图将继续引用旧数据表