【发布时间】:2016-08-25 01:05:28
【问题描述】:
在 C# 中,我将标志枚举值作为字节存储在数据库中。例如,对于以下 Flags 枚举:
[Flags]
public enum Options
{
None = 0,
First = 1,
Second = 2,
Third = 4
}
如果我想记录“第一”和“第二”,我将其保存为一个字节“3”在数据库中记录的“选项”字段中。
所以在使用 LINQ 时,我如何检查数据库中的值是否与作为“选项”枚举传递的参数中的“任何”选项匹配,类似于以下伪代码:
public static Something(Options optionsToMatch)
{
db.MyEntity.Get(a => a.options contains any of the options in optionsToMatch);
【问题讨论】:
-
为什么这被否决了?
-
“有任何选项”与“没有
None”不一样吗? -
不,我的意思是如果字节(a.options)代表'optionsToMatch'中传递的任何选项,那么它应该是一个匹配
-
这仍然完全不清楚(至少对我来说);任何值(可能是负值除外)表示一个选项或选项的组合,因此是一个匹配项