Visual Studio 데이터베이스 다이어그램 편집기에서 데이터베이스 디자인을 작성하고 그에 대한 모든 테이블을 작성했습니다. Linq to SQL 클래스를 만들고 테이블을 추가하여 각 테이블에 대한 개체를 만들었습니다. 데이터베이스에 새 항목을 삽입하려고 할 때 문제가 발생합니다.SQL에 Linq를 사용하여 관계형 데이터를 삽입하면 중복 입력 오류가 발생합니다.
예 :
두 테이블 인 아티스트 및 앨범이 있다고 가정 해 보겠습니다. 단일 아티스트가 여러 앨범 (일대 다)을 가질 수 있습니다. 앨범에는 아티스트 테이블의 아티스트 ID PK에 대한 FK 인 아티스트 ID 입력란이 있습니다. ID는 데이터베이스에 의해 자동으로 생성되는 GUID입니다.
이제 내 코드에서 새 앨범 객체 (myAlbum)를 만들고 해당 아티스트 객체를 이미 데이터베이스 (myArtist)에있는 아티스트로 설정합니다.
나는 이런 식으로 뭔가 할 경우. 내가 말하는 SQLEXCEPTION을 받고 결국
DatabaseDataContext context = new DatabaseDataContext();
context.Albums.InsertOnSubmit(myAlbum);
context.SubmitChanges();
:. "PRIMARY KEY 제약 조건 'PK_Artist'의 위반이 객체에 'dbo.Artist을'중복 키를 삽입 할 수 없습니다를 성명서가 종료되었습니다. "
myAlbum.Artist를 이미 데이터베이스에있는 아티스트와 비교하면 Linq은 평등하다고 말합니다. 따라서 동일한 개체라는 것을 알고 있습니다.
어떻게하면 아티스트를 다시 삽입하지 않고도 새 앨범 객체를 삽입하고 기존 아티스트와 데이터베이스에 연결할 수 있습니까?
pk_Artist 열 데이터 형식이란 무엇입니까? –
또한 GUID입니다. – nguyer
아티스트를 설정 한 코드를 게시 할 수 있습니까? – Paddy