我有一个标志,例如:
[Flags]
public enum DaysOfTheWeek
{
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
如果我想使用Linq根据包含特定标志的变量进行筛选,我可以尝试在lambda语句中使用Enum.HasFlag来过滤多个标志。DaysOfWeek weekendFilter = DaysOfTheWeek.Saturday | DaysOfTheWeek.Sunday;
var weekends = allDays.Where(d => d.DayOfWeek.HasFlag(weekendFilter));
目前返回的结果是:
LINQ to Entities不识别方法'Boolean HasFlag(System.Enum)',而这个方法无法转换成存储表达式。
HasFlag
方法。详见:http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/3951293-support-enum-hasflag 和 https://entityframework.codeplex.com/workitem/1497。 - Shay