C# EF Linq bitwise question

前端 未结 2 878
北恋
北恋 2021-02-06 04:01

Ok for example, I am using bitwise like such: Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8 etc...

I am using an Entity Framework class of Business.

I am

2条回答
  •  余生分开走
    2021-02-06 04:57

    You must decompose the long value(bitflagged enum will be better) to it's parts then pass it to Where

    return c.Businesses.Where(o=> DecomposeDays(dayParam).Any(day => day==o)).ToList();
    

    EDIT: decompose method:

    private static IEnumerable DecomposeDays(byte dayParam)
    {
        var daysOfWeek = new List { 1, 2, 4, 6, 8 ,16};
        return daysOfWeek.Where(o => (o & dayParam) == dayParam);
    }
    

提交回复
热议问题