向 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
}
我将此值存储到 int
列 Role
中的数据库中,其中 Role = A | B | C
(例如),因此我使用按位运算符。
我向该枚举添加了 2 个新值:E = 16
和 F = 32
。
但是对于旧的数据库记录,我需要将这些值默认设置为 true。
我看到了如何实现这个的一种方法 - 数据库迁移 Role = old Role value + 16 + 32
。正确吗?
还有其他方法可以实现吗?
由于您的枚举值是整数的幂,因此您的建议似乎有效,可以放心地假设您可以使用它。
有些数据库提供商确实有按位运算,例如:
我有一个枚举:
[Flags]
public enum Role
{
Basic = 0,
A = 1,
B = 2,
C = 4,
D = 8
}
我将此值存储到 int
列 Role
中的数据库中,其中 Role = A | B | C
(例如),因此我使用按位运算符。
我向该枚举添加了 2 个新值:E = 16
和 F = 32
。
但是对于旧的数据库记录,我需要将这些值默认设置为 true。
我看到了如何实现这个的一种方法 - 数据库迁移 Role = old Role value + 16 + 32
。正确吗?
还有其他方法可以实现吗?
由于您的枚举值是整数的幂,因此您的建议似乎有效,可以放心地假设您可以使用它。
有些数据库提供商确实有按位运算,例如: