0
AspNet.Identity에서 특정 역할을 가진 사용자 수를 가장 잘 계산하는 방법은 무엇입니까? 사용자를 통한 반복은 당밀보다 느립니다. 매우 느린 코드는 다음과 같습니다.AspNet.Identity (회원이 아님)의 역할에있는 사용자 수를 계산하십시오.
public static async Task<string> GetNumUsersInRole(this HtmlHelper helper, string roleName)
{
int num = 0;
using (ApplicationDbContext db = new ApplicationDbContext())
{
using (UserManager<ApplicationUser> um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
await (from u in db.Users select u).ForEachAsync(user =>
{
if (um.IsInRole(user.Id, roleName)) num++;
}).ConfigureAwait(false);
}
return num.ToString();
}
}
엄청난 도움을 주셨습니다. jd4u. 고맙습니다! 비동기 작업을 사용하고 흥미롭게도 CountAsync가 .ConfigureAwait (false)로 통화를 추가하지 않으면 반환하지 않습니다. – Ungaro