который делает это только для обернутых полей.
еделил класс 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 и выбрать те, которые соответствуют уровням доступа?