繁体   English   中英

如何在 EF 6.1.3 中使用枚举标志?

[英]How to Use Enum Flags with EF 6.1.3?

我认为我的查询不起作用,因为我有枚举标志。

   [Flags]
    public enum Permissions
    {
        None = 0,
        Read = 1,
        Write = 2,
        Delete = 4,
        Full = 8
    }


dbContext.UserStorages.FirstOrDefault(x => x.Permission.HasFlag(Permissions.Write));

在我的 sql 数据库中,该列是一个“int”列。 如果我将其更改为 Permissions.Full,那么现在的值为“8”,然后我将取回记录。

Permissions.Full不应该是 8,而是 7,如果它意味着读取 + 写入 + 删除。 二进制

Read   -> %001
Write  -> %010
Delete -> %100
Full   -> Read | Write | Delete -> %001 | %010 | %100 -> %111 -> 7

在您的情况下,您要问第二位(即%0010 )是否设置在%1000 ,这显然不是。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM