2010-06-03 97 views
3

在我们的数据库中,我们有一个位掩码,表示用户可以做什么类型的动作。如何从C#中的flag属性的枚举中获取位掩码值?

在我们的C#客户端,当我们从数据库中检索这个整数值时,我们构造了一个枚举/标志。它看起来有点像下面这样:

[Flags] 
public enum SellPermissions 
{ 
    Undefined = 0, 
    Buy = 1, 
    Sell = 2, 
    SellOpen = 4, 
    SellClose = 8 
    // ... 
} 

在我们的应用我有一个编辑权限页面,然后我用它来修改使用位或在不同的枚举值此枚举值。

permissions = SellPermisions.Buy | SellPermissions.Sell; 

现在,这些更改后,在我的数据库调用我需要调用哪些期待一个整数值的更新/插入存储过程。

如何从我的枚举/标志中取回整型按位值,以便我可以在数据库中设置修改后的权限?

回答

7

我能够通过将变量转换为int来实现。

int newPermissions = (int)permissions. 
2
int permissionsValue = (int) permissions;