여기에 두통이 있습니다. 첫 번째 접근 방식을 사용하여 Entity Framework 4에서 설계된 Session과 User 개체 사이에 하나 또는 둘 이상의 관계가 인 이 있습니다. 해야Entity Framework에서 관계를 업데이트하면 SQL 오류가 발생합니다.
- 사용자 는 사용자가 세션 (한)
- 하나의 Session 수이 (제로 - 일).
따라서 런타임 제가
Session session = context.Sessions.FirstOrDefault(s => s.Token.Equals(token));
그 후에 I 작성한 사용자를 사용하여 데이터베이스로부터의 세션을 당겨,이
user = context.Users.Create();
user.GUID = Guid.NewGuid();
user.Username = username;
user.Firstname = firstname;
user.Lastname = lastname;
user.Session = session;
context.Users.Add(user);
context.SaveChanges();
때 I 등의 사용자 입력을 기반으로 생성 된 저장, SQL 서버 데이터베이스에 이미 시도하기 때문에 GUID를 시도하는 예외가 throw됩니다. 그래, 그렇습니다. 문제는 그것이 shouldnt 인 경우, 세션을 업데이트하고 그 세션에 속한 forein 키를 채워야합니다. 외래 키는 관계의 사용자 측에 있습니다. 괜찮습니다. 맞습니까?
편집 는 사용자 는 새로운 사용자 여야합니다. 사용자를 업데이트하는 것은 내가 성취하려는 것이 아닙니다. 또한 오류는 코드가 foreing 키를 업데이트하는 대신 동일한 기본 키 값을 사용하여 세션을 삽입하려고하기 때문에 발생합니다.
여기에 수행해야 무엇을 연대순 목록입니다 :
- 세션이 세션
- 사용자가
- 사용자 <를 작성되는 데이터베이스에서 선택됩니다
- 저장됩니다
- 세션을 생성됩니다 - > 세션 관계가 설정 됨
- 사용자가 저장 함
그리고 내가 무엇을 얻을 것은 : PRIMARY KEY 제약 조건 'PK_Sessions'의
위반. 개체 'dbo.Sessions'에 중복 키를 삽입 할 수 없습니다. 중복 키 값은 VALUE입니다. 그 진술서는 만료되었습니다.
저는 지난 2 시간 동안이 문제를 해결해 왔습니다.
문제가 변경 되었기 때문에 내 대답이 삭제되었습니다. – Marco