我的数据访问层有一个功能。此函数将枚举(其上具有[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);
}
我该怎么做?