데이터베이스가 비어 있고 C# 응용 프로그램에서 채우고 하나의 .SaveChanges() 명령 만 사용해야합니다. 모든 것이 저장됩니다. , 또는 아무것도 저장되지 않습니다. 사람, 클래스, PersonClass : 내가 3 개 테이블이하나의 SaveChanges() 명령으로 처음부터 전체 데이터베이스 채우기
:
제가하는 데 문제는 이것이다. 그것들은 비어 있습니다.
그래서 C# 코드에서 엔티티 모델을 통해 Person {Id : 1, Name : John}을 추가합니다. 다음으로 John과 일부 클래스 사이에 관계를 추가하고 싶습니다. 그런 다음 클래스를 추가하려고합니다. 그래서 John을 만들면 다음과 같이합니다 :
John.Classes.Add(new Class
{
ClassId = 1
});
그리고 나서 db에 수학을 추가합니다.
그 후에는 SaveChanges()가 발생하고 PRIMARY KEY 제약 조건 위반이 발생합니다. 중복 키를 삽입 할 수 없습니다.
내 PersonClass 테이블에는 personId 및 classId라는 두 개의 열이 있습니다. 둘 다 기본 키이며 자동 증가 속성이 아니라 봇입니다.
사람은 ID와 이름의 두 열을가집니다. 클래스에는 하나의 열 ID 만 있습니다. id는 기본 키이지만 자동 인식은 아닙니다.
필요 : EF6 예 이상 들어
. –
@KeithPayne 나는 그 질문에 덧붙였다. 참조하십시오. –
이 문제를 해결하는 것이 중요한 EF 모델입니다. 테이블은 모델의 인공물입니다. 내가 받고있는 것은 당신이 테이블 앞에 집중하여 말 앞에 카트를 넣고있을 수도 있다는 것입니다. 예를 들어, EF에서는 m : m 관계의 외부 참조 테이블을 정의하지 않습니다. EF가 그 일을합니다. 그리고 EF에서 올바르게 작동하면'SaveChanges()'를 호출 할 때 외래 키 값을 할당하는 작업도 처리합니다. 게시 된 모델에 대한 코드를 통해 좀 더 구체적으로 설명 할 수 있습니다. –