Asp MVC实体框架检查权限是否在角色中

时间:2016-08-01 09:13:46

标签: c# asp.net-mvc entity-framework linq oop

我有以下模型,我想要一种方法来检查权限是否在角色中。目前我正在使用执行for循环的IsPermissionInRole方法实现它:

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 个答案:

答案 0 :(得分:2)

您可以使用Any执行以下操作:

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

答案 1 :(得分:2)

或更简单

class SomeClass {
  async someFunc() {
      const urlParameters = [0, 1, 2];
      const batchAjaxResult = await Promise.all(
          urlParameters.map(async (parameter) => {
            const result = await $.get(`someUrl/${parameter}`);
            return {
              parameter,
              result
            }
         })
      );
      console.log(batchAjaxResult);

  }
}