У меня есть функция в моем слое доступа к данным.Эта функция принимает enum (с атрибутом [Flags]
) в качестве единственного параметра.
[Flags]
public enum ItemTags { Browsable = 2, InMenu = 4 }
public List<Item> GetAllItems(ItemTags flags)
{
// Here I should create the SQL bitwise query.
}
В этой функции я должен создать побитовый SQL-запрос, что-то вроде:
select * from tableName where columnName & 2 = 2 and columnName & 4 = 4
И на моем бизнес-уровне я хочу использовать эту функцию.Но есть много возможных способов использовать эти теги и флаги.Вот некоторые из этих функций:
public List<Item> GetItemsOfMenu()
{
return repository.GetAllItems(ItemTags.InMenu);
}
public List<Item> GetBrowsableItems()
{
return repository.GetAllItems(ItemTags.Browsable);
}
public List<Item> GetBrowsableMenuItems()
{
return repository.GetAllItems(ItemTags.Browsable & ItemTags.InMenu);
}
Как я могу это сделать?