2016-09-26 3 views
0

데이터베이스 우선 솔루션.열 'ID'에 NULL 값을 삽입 할 수 없습니다 (데이터베이스 우선)

UserProfile이라는 두 개의 표를 사용하고 있습니다. 둘 다 기본 키로 uniqueidentifier (SQL Server)을 사용하고 있습니다. 내 edmx 파일을 엽니 다

  1. : 나는 User을 할 방법은 자동으로 자신의 GUID ID가 출신이다받을 수 있습니다.

  2. User -> Properties -> StoreGeneratedPattern을 Identity로 변경하려면 Guid 열을 마우스 오른쪽 단추로 클릭하십시오.

매력처럼 작동했습니다. 지금은 Review와 같은하려고 노력하지만, 나는 다음과 같은 오류를 나는 새 행 만들려고 해요 때마다 점점 해요 :

열 '아이디'에 NULL 값을 삽입 할 수 없습니다, 테이블 '의 XXXX를 .dbo.Profile '; 열이 널을 허용하지 않습니다. INSERT가 실패합니다. 문이 종료되었습니다. 내가 Profile에 대한 StoreGeneratedPattern에 대한 Identity를 사용하지 않는 경우

, 그것은 고유 ID, 내가 다시 새 행을 만들려고하면 중복 오류가 발생할 제로의 대신 무리를 생성하지 않습니다.

사용자가 정상적으로 작동하지만 Profile이 아닌 이유는 무엇입니까?

나는이 가이드 guide을 두 테이블 모두 따라야합니다.

+0

오류 메시지가 "프로필"이 아닌 "프로필"이라는 테이블을 참조합니다. 그것은 당신이 철자가 잘못되었거나 그것이 참조하는 테이블이나 클래스에 이름을 붙일 수 있습니까? –

+1

uniqueidentifier (Guid) 열에 DatabaseGeneratedOption.Identity를 사용할 수 없습니다. DBMS의 Guid 열은 자동 증가되지 않으며 StoreGeneratedPattern을 Identity로 변경했기 때문에 EF는 DBMS에 의해 제공되기를 기대하므로 값으로 전달하지 않습니다. – DevilSuichiro

+0

을 사용하려면 StoreGeneratedPattern을 없음으로 변경하고 유효한 Guid 값을 설정하거나 데이터 유형을 변경하십시오. – DevilSuichiro

답변

1

@Gert Arnold가 언급 한 것처럼 SQL 서버에 Profile 테이블에 newsequentialid() 테이블을 추가하는 것을 잊었습니다. 일단 내가 한 후에는 DatabaseGeneratedOption.Identity으로 고유 한 Guids를 생성 할 수있었습니다.

이 방법에 대한 자세한 내용은 here을 참조하십시오. 여기에는 Code-First 기술도 포함됩니다.

관련 문제