向枚举添加新值,并在默认情况下将其设置为 true [标志]



我有一个枚举:

[Flags]
public enum Role
{
    Basic = 0,
    A = 1,
    B = 2,
    C = 4,
    D = 8
}

例如,我将此值存储在intRole Role = A | B | C中的数据库中,因此我使用按位运算符。

我向这个枚举添加了 2 个新值:E = 16F = 32 .但是对于旧的数据库记录,我需要将这些值默认设置为 true。

我看到如何实现这一点的一种方式 - Role = old Role value + 16 + 32的数据库迁移.正确吗?

有没有其他方法来实现这一点?

由于您的枚举的值为 2 的幂,因此您的建议似乎有效,可以安全地假设您可以使用它。

不过,某些数据库提供程序确实具有按位运算,例如:

  • Mysql: https://dev.mysql.com/doc/refman/5.7/en/bit-functions.html#operator_bitwise-or

最新更新