2013-08-14 3 views
0

저는 초보자 인 LinQ To SQL (.NET Framework 4에서 Visual Studio 2012를 사용하고 있습니다)입니다. O/R 디자이너를 사용하여 dbml 파일을 생성했습니다. 이 파일에서 데이터베이스를 생성했습니다. 여기 삽입시 ID가있는 LINQ to SQL 오류

는 일이 : 나는이 메시지가 데이터베이스에 개체를 삽입 할 때에 (나에게 "Can not insert the value NULL into column 'id'... The column does not allow NULLS. INSERT error".

엔티티 (테이블) 이름이 "EstadisticaExamen"이며, 말 (스페인어에) dbml)은 "자동 생성 값"으로 설정되고 자동 동기화 = 삽입시 및 유형 = int (System.Int32)로 설정됩니다.

.dbml 파일의 이름은 Modelo입니다.

ModeloDataContext dc = new ModeloDataContext(); 

EstadisticaExamen estadistica = new EstadisticaExamen(); 

//initialization of fields 
dc.EstadisticaExamen.InsertOnSubmit(estadistica); 

dc.SubmitChanges(); 

고마워 :

다음은 삽입 코드입니다!

+0

당신은 'ID'열 등, "자동 값을 생성"으로 설정되어 의미합니까? – hatchet

+0

엔티티 정의와 엔티티 매핑을 공유하고자 할 수 있습니다. – Nilesh

+1

데이터베이스에 ID 열이 ID 열로 정의되어 있습니까? – hatchet

답변

0

는 자동 증가 ID로 사용자의 ID 열을 정의하고 당신은 null를 전달할 수 있습니다.

+0

네,하지만이 페이지에서 읽은 것처럼 http://www.codeproject.com/Articles/46422/A-LINQ-Tutorial-Adding-Updating-Deleting-Data, "클래스에 ID 열이 있고 플래그가 지정된 경우 해당 Column 속성에 IsDbGenerated, SubmitChanges()에 대해 LINQ to SQL이 자동으로 해당 열의 값을 데이터베이스에서 설정 한 ID로 업데이트합니다. –

+0

그러면 모델 클래스가 데이터베이스에서 할당 한 ID를 갖게됩니다. 그러나 IsDbGenerated 속성은 DB 자체가 ID를 생성한다는 것을 의미하므로 ID를 제출 한 후에 모델에서 ID를 가져와야하는 이유입니다. 이러한 이유로 데이터베이스에서 ID를 생성해야하며 ID 열 –

+0

네, 맞았어요! 자동 증가 ID를 정의했고 작동합니다! 많이 고마워요! –