현재 주어진 사용자의 역할 목록을 얻으려고하고 있으며이를 사용중인 컨텍스트에 맞추기 위해 문제가 있습니다. 이 API 함수 이전에 사용할 수있는 모든 역할,ASP.net ID 및 웹 API를 사용하여 사용자 역할 가져 오기
[HttpGet]
[Route("GetRoles")]
public async Task<ApiResponse<List<RoleViewModel>>> GetRoles()
{
try
{
//Get Roles
var roles = await (from r in _db.AspNetRoles
select new RoleViewModel { Id = r.Id, Name = r.Name}).ToListAsync();
return new ApiResponse<List<RoleViewModel>>{ Success = true, Result = roles };
}
catch(Exception ex)
{
return new ApiResponse<List<RoleViewModel>> { Success = false, Message = ex.Message };
}
}
하지만 사용자의 역할 목록을 얻기 위해이 일에 던질 필요가 무엇인지 알아낼 수 없습니다. 우리는 Entity Frameworks Code First with Existing Database 접근법을 사용하여 이러한 테이블을 사용하고 있습니다. 이상하게도 그것은 AspNetUserRoles 테이블이 없기 때문에 AspNetUsers와 AspNetRoles라는 두 테이블을 관련 짓고 있기 때문입니다. 어쨌든, 여기에 문제의 기능,
[HttpGet]
[Route("GetUserRoles")]
public async Task<ApiResponse<List<RoleViewModel>>> GetUserRoles(string userName)
{
try
{
var userRoles = await (_db.AspNetUsers.FirstOrDefault(u => u.UserName == userName).AspNetRoles).ToListAsync();
}
catch (Exception ex)
{
return new ApiResponse<List<RoleViewModel>> { Success = false, Message = ex.Message };
}
}
내가 점점 오전 현재 오류가 AspNetRole가) (ToListAsync에 대한 정의를 포함하지 않습니다이다. 나는 비동기적인 것들이 나를 던지고 있다고 생각한다. 그리고 마지막으로 여기 RoleViewModel는
public class RoleViewModel
{
public string Id { get; set; }
[Required]
[StringLength(256)]
public string Name { get; set; }
}
그리고 ApiResponse 클래스 참조를 위해 간단한 수정이 있어야합니다 같은 느낌
public class ApiResponse<TResult>
{
public bool Success { get; set; }
public string Message { get; set; }
public TResult Result { get; set; }
}
,하지만 난 그냥 아주 그것이 무엇인지 파악할 수 없습니다.
"using System.Data.Entity"가 있습니까? – tmg
예, 많은 사용자의 문제로 보였습니다. 나는 방금 그것을 운동하고 아래에 내 코드를 게시, 감사합니다! – tokyo0709