0

比方说,我有一个表X与列:Name,Role。主页面显示Name's列表X。以某些特定用户身份(指定了ASP.NET角色)登录时,我想仅显示Name's的列表,其中Role与当前登录的用户匹配。这是可能的,例如装饰EF功能?我想避免在调用GetList的应用程序中的所有地方编码为if's限制使用asp.net授权从数据库访问一些数据

我使用EF 6分贝第一,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

是否有可能,但不能通过装饰方法。通过过滤EF层中的角色是可能的。 –

+0

@ChetanRanpariya通过“过滤”你的意思是改变所有'GetList'方法? –

+0

GetList方法是哪个类的一部分?谁称这种方法?你可以分享GetList方法的代码吗? –

回答

0

你想要一个business layerGetList变成GetListForUserRole并且带有角色参数。然后,您的应用程序的多个部分可以调用此方法并为其提供角色。

+0

这是我想要避免的,因为在实际场景中,我有大约10个用户特定数据表和超过100个(估计)位置,我将这些方法称为GetList。 –