который делает это только для обернутых полей.

еделил класс GenericRepository, который выполняет взаимодействие с БД.

 protected GenericRepository rep = new GenericRepository();

И в моих классах BLL, я могу запросить БД, как:

public List<Album> GetVisibleAlbums(int accessLevel)
{
    return rep.Find<Album>(a => a.AccessLevel.BinaryAnd(accessLevel)).ToList();  
}  

BinaryAnd - это метод расширения, который проверяет два значения int побитно. напримерAccessLevel=5 =>AccessLevel.BinaryAnd(5) а такжеAccessLevel.binaryAnd(1) оба возвращают истину.

Однако я не могу использовать этот метод расширения в моих запросах LINQ. Я получаю ошибку во время выполнения следующим образом:
LINQ to Entities does not recognize the method 'Boolean BinaryAnd(System.Object, System.Object)' method, and this method cannot be translated into a store expression.

Также попытался изменить его на собственный метод, но не повезло. Каковы обходные пути?

Должен ли я получить все альбомы и затем повторить их через цикл foreach и выбрать те, которые соответствуют уровням доступа?

Ответы на вопрос(3)

Ваш ответ на вопрос