在ASP.NET中保留全局对象

本文关键字:全局 对象 保留 ASP NET | 更新日期: 2023-09-27 18:19:58

在我的例子中,我有一个自定义论坛,由asp.net和C#中的几个用户共享。我发现加载过程非常昂贵(为了不同的目的连接了几个表)。用户可以修改和添加新条目。但我不想按每个用户加载对象。考虑到静态变量(尤其是在可编辑的情况下)不是线程安全的。我想知道这样做的最佳实践是什么。

在ASP.NET中保留全局对象

有一个简短的答案。。。这个问题的答案很长。长答案可以在programmers.stackexchange.com上找到,短答案是我在这里给你的。

我建议(非常有条件地,因为我不知道查询的性质)在数据库中为该复杂联接创建一个视图,原因是数据库将为您缓存视图,并在每次更新查询所接触的表时更新它。这意味着您只需要对该视图进行查询,而不需要现在进行的非常复杂的查询。请注意,这是一个短期解决方案,如果您的用户数量增加,这可能会导致您的数据库开始占用CPU和ram。