2016-08-01 67 views
3

我有以下模型,我想要一個方法來檢查權限是否在角色中。目前我正在實施這一使用IsPermissionInRole方法,做一個循環:Asp.net MVC實體框架檢查權限是否在角色

public class ApplicationRole : IdentityRole 
{ 
    public ApplicationRole() : base() { } 
    public ApplicationRole(string name) : base(name) { } 

    public virtual ICollection<Permission> Permissions { get; set; } 

    public bool IsPermissionInRole(string _permission) 
    { 
     bool _retVal = false; 
     try 
     { 
      foreach (Permission _perm in Permissions) 
      { 
       if (_perm.Name == _permission) 
       { 
        _retVal = true; 
        break; 
       } 
      } 
     } 
     catch (Exception) 
     { 
     } 
     return _retVal; 
    } 

} 

是否有一個更優雅的方式做到這一點也許使用一些LINQ查詢?

回答

2

或者簡單

public bool IsPermissionInRole(string _permission) 
{ 
    return Permissions.Any(p => p.Name == _permission); 
} 
2

可以做到使用Any如下:

if (Permissions.Any(p => p.Name == _permission)) 
{ 
    _retVal = true; 
}