我有一个枚举:
[Flags]
public enum Role
{
Basic = 0,
A = 1,
B = 2,
C = 4,
D = 8
}
我将此值存储到DB的int
列Role
(例如)中的Role = A | B | C
列中,因此我正在使用按位运算符。
我为此枚举添加了2个新值:E = 16
和F = 32
。
但是对于旧的数据库记录,我需要默认将这些值设置为true。
我看到如何实现此目标的一种方法-数据库迁移在Role = old Role value + 16 + 32
处。正确吗?
还有另一种实现方法吗?
答案 0 :(得分:0)
由于您的枚举具有作为二元幂的值,因此您的建议似乎行得通,并且可以安全地假设您可以使用它。
某些DB提供程序确实具有按位操作,例如: