Я определил класс 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)
оба возвращают значение true.
Однако я не могу использовать этот метод расширения в своих запросах LINQ. Я получаю следующее сообщение об ошибке выполнения:
LINQ to Entities не распознает метод Boolean BinaryAnd (System.Object, System.Object), и этот метод не может быть преобразован в выражение хранилища.
Также пробовали изменил его на собственный метод, но не повезло. Какие обходные пути?
Должен ли я получить все альбомы, а затем перебрать их в цикле foreach и выбрать те, которые соответствуют AccessLevels?