将新值添加到Enum并将其默认设置为true [Flags]

时间:2019-04-22 08:59:22

标签: c# enum-flags

我有一个枚举:

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

我将此值存储到DB的intRole(例如)中的Role = A | B | C列中,因此我正在使用按位运算符。

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

我看到如何实现此目标的一种方法-数据库迁移在Role = old Role value + 16 + 32处。正确吗?

还有另一种实现方法吗?

1 个答案:

答案 0 :(得分:0)

由于您的枚举具有作为二元幂的值,因此您的建议似乎行得通,并且可以安全地假设您可以使用它。

某些DB提供程序确实具有按位操作,例如: