假设我有一个表格X
,其中包含以下列:Name
,Role
。主页面显示表格Name's
中X
的列表。以某个特定用户身份登录(分配了ASP.NET角色)时,我希望仅显示Name's
与当前登录用户匹配的行显示Role
列表。是否可以通过例如以某种方式装饰EF功能?我想在应用程序中调用if's
的所有地方避免使用加密GetList
。
我首先使用EF 6和db,ASP.NET,MVC 6。
修改
GetList
方法是GenericDataRepository的一部分:
public virtual IList<T> GetList(Expression<Func<T, bool>> where, params Expression<Func<T, object>>[] navigationProperties)
{
IQueryable<T> dbQuery = this.Context.Set<T>();
foreach (var navigationProperty in navigationProperties)
{
dbQuery = dbQuery.Include(navigationProperty);
}
var list = dbQuery.AsNoTracking().Where(@where).ToList();
return list;
}
答案 0 :(得分:0)
你想要一个business layer。 GetList
变为GetListForUserRole
并获取角色参数。然后,应用程序的多个部分可以调用此方法并为其提供角色。