我有存储过程返回:
当我在C#中调用存储过程时,我得到:
无法隐式转换类型' bool'到' int'
public int IsUserInRole(IsUserInRole userInRole)
{
var model = _userRepository.CheckIfUserIsInRole(userInRole);
if (model == 1)
{
return true;
}
else
{
return false;
}
}
我需要使用它来验证已分配的角色的已记录用户,以便我可以稍后根据UserRole
进行授权。
所以我需要来自SP的真或假,这意味着我需要将整数转换为布尔
我试过Better way to convert an int to a boolean 和http://www.dotnetperls.com/convert-bool-int,但我没有运气:)。
有任何建议如何解决这个问题?
答案 0 :(得分:2)
让intVal
为整数,boolVal
为布尔变量,然后你就可以这样做:
boolVal = intVal==1;
查看您的方法,您已将返回值指定为int
并尝试返回导致指定错误的boolen值。如果您将返回类型更改为bool
,那么您的代码将按预期正常工作。您可以通过更简化的方式修改方法签名,如下所示:
public bool IsUserInRole(IsUserInRole userInRole)
{
return _userRepository.CheckIfUserIsInRole(userInRole)==1;
}
答案 1 :(得分:1)
这将解决您的错误(使用bool
返回类型而不是int
)并且会缩短您的代码:
public bool IsUserInRole(IsUserInRole userInRole)
{
return _userRepository.CheckIfUserIsInRole(userInRole) == 1;
}