0

기존 데이터베이스와 함께 ASP.NET ID 2.0을 사용하려고합니다. 개인 계정 인증을 사용하는 MVC 프로젝트를 만든 다음 DB를 만들기 위해 등록했습니다. 그런 다음ASP.NET ID 2.0 DB 첫 번째 방법 : 새 열 추가

는 :

  1. 나는 내 테이블 플러스 신원 테이블을 포함 (첫 번째 데이터베이스) ADO.NET 엔터티 데이터 모델을 추가 필요한 테이블에 대한 스크립트를 생성하고 내 자신의 DB
  2. 에 추가.
  3. 나는 응용 프로그램을 실행하고 사용자를 위해 등록했습니다. 모든 것이 잘됩니다.

이제 테이블에 AspNetUser의 관계를 추가해야합니다.

  1. DB에 관계가있는 열 위치 ID를 추가했습니다.
  2. 내가 응용 프로그램 사용자 클래스에 다음과 같은 추가 :

    : 나는 새로운 사용자 등록하려고 할 때 다음

    public virtual Region Region { get; set; } 
    
  3. , 내 모델을 업데이트하고 응용 프로그램을 실행을, 나는 다음과 같은 오류가 발생했습니다

    AspNet UserLogin: EntityType: EntitySet 'AspNetUserLogins' is based on type 'AspNet UserLogin' that has no keys defined.

이 시나리오에서 DB First Approach를 어떻게 계속 사용할 수 있습니까?

+0

가능한 복제본 : http://stackoverflow.com/q/28531201/861716 –

+0

아니요, 시드 또는 사용자 지정 매핑에 대한 코드를 추가하지 않았습니다. – Coding

+0

방금 ​​내 사용자 지정 DB에 ID 테이블을 추가 한 다음 DB First를 사용하여 모델을 추가했습니다. 동일한 DB를 가리키는 두 개의 연결 문자열도 있습니다. 하나는 Identity를위한 것이고 다른 하나는 Database First Model을위한 것입니다. – Coding

답변

1

신원 확인 코드 신원 확인 시스템을 만들기위한 첫 번째 접근 방식은 최대한 사용자 지정을 만들고 일반적인 데이터 액세스를 위해 DB 첫 번째 접근 방식을 사용하고 있습니다. 따라서 두 개의 컨텍스트가 있습니다. 하나는 데이터 용이고 다른 하나는 Identity입니다. 당신은 신원 클래스를 작성하고 같은 패키지 관리자 콘솔에서 입력하여 신원 컨텍스트 클래스의 코드 첫 번째 마이그레이션을 할 필요가 :

`사용-마이그레이션이 -ContextNameType [Your_Identity_Context]

이 코드 첫 번째 마이그레이션을 가능하게 할 것이다 ID 컨텍스트 유형에만 해당됩니다. 사용자 테이블에 region 속성을 추가하려면 'ApplicationUser'(또는 IdentityUser에서 파생 된 클래스)에 필요한 지역 속성을 추가 한 다음 마이그레이션을 적용하여 데이터베이스의 사용자 테이블을 업데이트하십시오.

SQL 스크립트를 생성하고 데이터베이스에 적용하는 것은 좋은 방법이 아닙니다.

+0

괜찮 았어. 그러나 어떻게 테이블 이름을 바꿀 수 있습니다. Fluent Api가 제 경우에는 작동하지 않습니다. – Coding