아무 이유없이 UserManager.Create(user, password);
이 EntityValidationError
이 Id
이라고 말하는 이유 일 수 있습니다.UserManager.Create (user, password)를 호출하면 Id가 필요하다는 EntityValidationError가 발생합니까?
내 UserManager
과 관련이 있습니다. 이 같은
public class MyAppDb : IdentityDbContext<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public static MyAppDb Create()
{
return new MyAppDb();
}
public MyAppDb()
: base("MyAppDb")
{
}
}
public class ApplicationUserStore : UserStore<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationUserStore(MyAppDb context)
: base(context)
{
}
}
public class ApplicationUserManager : UserManager<ApplicationUser, string>
{
public ApplicationUserManager(IUserStore<ApplicationUser, string> store)
: base(store)
{
}
}
그리고 컨트롤러 : 그것은이 같은 설정이다
이public class AccountController : Controller
{
public AccountController()
: this(new ApplicationUserManager(new ApplicationUserStore(new MyAppDb())))
{
}
public AccountController(ApplicationUserManager userManager)
{
UserManager = userManager;
UserManager.PasswordValidator = (IIdentityValidator<string>)new MinimumLengthValidator(8);
UserManager.UserValidator = new UserValidator<ApplicationUser>(UserManager) { AllowOnlyAlphanumericUserNames = false, RequireUniqueEmail = true };
}
public ApplicationUserManager UserManager { get; private set; }
...
}
ApplicationUser
, ApplicationRole
는, ApplicationUserLogin
, ApplicationUserRole
및 ApplicationUserClaim
모두 각각 신원 클래스에서 상속합니다.
누구든지 잘못된 것이 있습니까? 나는 Id
문제없이 모든 사용자의 신원 클래스를 생성하기 전에 사용자 (UserManager.Create())
를 등록 할 수 있었다
UPDATE :.. 데이터베이스 컨텍스트에서 자동 생성 키를 끊었다 그것은 키에 대한 string
를 지정하는 것 같다 즉 내 추측. 나를 Id
을 설정하는 것이 지금 찾고있다. 나는 그것이 내가 User
에 사용자 정의 필드를 생성하기 전에했던 방식으로 작동하려면, 싶지 않아.
id 문제 : http://stackoverflow.com/questions/22721011/aspnet-identity-custom-user-and-custom-role-should-be-simple-what-am-i-missing/22746674 # 22746674 –