문제

Asp.Net Identity 3 클래스를 사용자 정의하고 싶습니다.

여기 내가 한 일이있다.

public class MyDbContext : IdentityDbContext<User>

public class MyDbContext : IdentityDbContext<User>

또한 IdentityUserClaim<int>, IdentityRole<int>, IdentityUserLogin<int> and IdentityUserRole<int> 했지만 다음 오류가 발생합니다.

public class MyDbContext : IdentityDbContext<User>

수락 된 답변

클래스를 IdentityUser<int> 를 상속받는 방법을 모르겠습니다. IdentityUser<int> 제네릭 버전에는 더 많은 유형 매개 변수가 있습니다. 여기를 확인하십시오 : https://msdn.microsoft.com/en-us/library/dn613256%28v=vs.108%29.aspx

그래서, 당신은 필요합니다 :

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

과:

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

편집 : 아이덴티티 3.0의 경우에는 약간 다르지만 문제는 비슷합니다. 따르면 : https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNet.Identity.EntityFramework/IdentityDbContext.cs

IdentityDbContext<TUser> 는 다음과 같습니다.

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

중요한 부분은 where TUser : IdentityUser IdenityUser의 정의는 다음과 같습니다.

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

그리고 User 클래스는 IdentityUser<int> 상속하므로 int / string 차이 때문에 'IdentityUser'로 암시 적 변환되지 않습니다.

해결책은 IdentityDbContext<TUser, TRole, TKey> 에서 상속하는 것입니다. 여기서 TUser는 User 클래스이고 TRoleIdentityRole<int> 상속하는 새 Role 클래스이고 TKeyint .

public class User : IdentityUser<int, UserLogin, UserRole, UserClaim>

인기 답변

이 정도면 충분합니다.

public class ApplicationUser : IdentityUser<int>
{

}

public class ApplicationRole : IdentityRole<int>
{

}

public class MyDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
{

}



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.