向 Enum 添加新值并将它们默认设置为 true [Flags]

Add new values to Enum and set them to true by default [Flags]

我有一个枚举:

[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。正确吗?

还有其他方法可以实现吗?

由于您的枚举值是整数的幂,因此您的建议似乎有效,可以放心地假设您可以使用它。

有些数据库提供商确实有按位运算,例如: