我有一个拥有一些IEnumerable
方法的业务层。我在我的控制器中使用了这些方法,并在make方法结果为.ToList()
后得到结果。
现在有了新的要求。我必须按用户访问过滤操作结果数据。当用户调用action方法时,只调用一个业务层方法,但每个用户需要不同的结果。例如:用户A可以加载所有数据,但用户B只能根据他的许可访问10行数据。
代码:
BL:
public IEnumerable<Card> GetCardList(int Id)
{
return unitOfWork.GetCardList(Id);
}
控制器:
//...
CardBl.GetCardList(id).ToList();
//...
我尝试通过覆盖OnActionExecuting
或OnResultExecuting
方法来过滤CustomActionFilter类中的数据,但我很困惑!
实际上我想通过属性使这种过滤自动化,而不是为每个方法添加where
子句。
如果有人建议解决方案,我将不胜感激。
更新 我的模特:
public class CardModels
{
public int Id { get; set; }
public string CardName { get; set; }
public string CardDescription { get; set; }
public int CityId { get; set; }
}
CityId
是我必须根据数据过滤数据的属性。