c# - 静态 C# 变量,由于数据库连接而引发错误

标签 c# .net linq static

我想知道是否有办法克服这种情况:

我有一个带有静态变量的静态类,名为 let's say

static string[] Cities = GetCities();

GetCities 从数据库中获取所有城市。问题是我在使用 GetCities 时遇到错误,因为数据服务器有时不可用,即使服务器再次可用,此错误也不会消失。
我认为这是因为变量 Cities 只创建了一次......

最佳答案

I think that this is because the variable Cities is created only once

这是正确的:只会调用一次 GetCities();如果失败,则不会有其他调用。要解决此问题,请将 Cities 更改为只读属性,并在获取结果时缓存 GetCities() 的结果。

static string[] cachedCities = null;
public static string[] Cities {
    get {
        return cachedCities ?? (cachedCities = GetCities());
    }
}

关于c# - 静态 C# 变量,由于数据库连接而引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17325511/

相关文章:

c# - 在C#中使用Salt解密密码

c# - 使用 Linq 从表中计算星期一、星期二等的数量

c# - 如何在 C# 中使用动态分配创建类对象数组?

C# 从列表中递归创建 TreeView

c# - 我应该在套接字接收和另一个之间使用 Thread.Sleep 吗?

.net - 将 ASP.Net Identity 表链接到用户详细信息表

c# - 通过构造函数依赖注入(inject)打破循环依赖

.net - 构建后删除 PostSharp 引用?

c# - 带连接的 linq 查询

c# - LINQ to Entities 无法识别方法 ToDateTime(System.String)