2013-06-24 4 views
0

데이터베이스 (SQLite)에없는 새로운 EntityObject를 생성하고 있습니다. 개체의 속성을 채우고 부모 개체에 연결합니다. EF가 자동으로 임시 EntityKey를 생성해야한다는 것을 알고 있기 때문에 기본 키 속성을 채우지 않습니다. 그런 다음 AddObject 메서드를 사용하여 새로 만든 EntityObject를 컨텍스트에 추가 한 다음 SaveChanges를 호출합니다.임시 EntityKey가 생성되지 않았습니다.

업데이트가 발생했습니다 : 제약 조건 위반으로 인해 중단되었습니다 PRIMARY KEY는 고유해야합니다. 기본 키 속성은 항상 데이터베이스에서 사용 가능한 다음 값이어야하지만 항상 0으로 설정되어 있습니다. 데이터베이스에서 기본 키 필드가 자동 증가한다는 것을 확인했습니다.

EF에서 임시 EntityKey를 얻으려면 어떻게해야합니까?

답변

0

EF는 임시 키를 생성하지 않습니다. 직접 임시 키를 생성해야합니다.

할 수있는 작업 : [NotMapped] 속성으로 장식 된 모델에 속성을 추가하십시오. 객체 생성시이 값은 값으로 초기화해야합니다. Guids이 문제를 미세하게 해결합니다. 임시 키를 생성하려면 Guid.NewGuid()을 사용해야합니다.

[NotMapped] 필드가 데이터베이스에 유지되지 않도록합니다.

+0

여기서 문제는 데이터베이스 자체에있었습니다. 데이터베이스 테이블에서 기본 키를 자동 증가시키지 않아 케이스가 해결되었습니다. – Nuts

관련 문제