2011-10-15 4 views
0

사용자에 대한 2 개의 테이블이 있습니다. 하나는 사용자 공통 정보를, 다른 하나는 추가 정보 용으로, UserId 필드와 일대일 관계가 있습니다.하나의 관계형 테이블에 새로운 레코드를 삽입하십시오.

사용자 :

UserId >> Primarykey auto increment 
UserName 
Password 

UsersInfo : 사용자가 새 계정을 등록 할 때 우리는 사용자 테이블에 행을 삽입하고, 나중에 자기가 원하는 경우 내 응용 프로그램에서

UserId >> Primarykey 
MoreInfo 

, 일부 정보를 변경하려면 UsersInfo 테이블에 추가해야합니다.

제가 직면 한 문제는 UsersInfo 테이블에 삽입하려고하면 항상 UserId가 null이 될 수 없다는 것입니다. 나는 saveChanges를 호출하기 전에이 userID를 설정했다.

var info = new UserInfo { UserId = userId, MoreInfo = text }; 
context.UserInfo.Add(info); 

EF 또는 db의 문제인지 여부를 알 수 없으므로 확인해야 할 정보 나 내용이 도움이 될 것입니다.

답변

2

이것은 해결책이 아닌 해결책입니다. 아마도 작동 할 것입니다 :

Users: 
---- 
UserId >> Primary key & Auto increment 
UserName 
Password 

UsersInfo: 
---- 
UsersInfoId >> Primary key auto increment 
UserId >> Foreign key & Unique constraint (for one-to-one relation) 
MoreInfo 
1

우선, 사용자 당 추가 정보의 여러 세트가있는 경우를 제외하고 두 개의 별도 테이블을 사용할 필요가 없습니다. 단일 테이블을 사용하는 경우 간단한 UPDATE 쿼리를 사용하면 문제가 해결됩니다.

당신은 당신의 방법, userId를널 (null) 또는 일부 값을 갖는 여부를 첫 번째 테스트를 이동합니다. null이거나 비어 있으면 언급 한 오류가 발생합니다.

도움이되는지 확인하십시오.

관련 문제