2011-09-26 4 views
0

테이블을 여러 범주 유형에 사용하고 'ClassName'이라는 Discriminator 열을 포함하여로드 할 개체 유형을 지정합니다 . ClassName 열이 Nullable이며 기본값이 'Category'입니다.Discriminator 열에 값 null을 삽입 할 수 없기 때문에 계층 구조 (TPH) 당 EF 테이블을 저장할 수 없음

새 항목을 저장할 때 오류가 발생합니다. '값 null을 열 ClassName'테이블 범주에 삽입 할 수 없습니다.

나는 ef가 새 객체 클래스에 ClassName 값 기본을 설정할 것을 강요했다. 개체를 올바른 'ClassName'값으로 저장할 수 있습니까?

+1

예, EF에 대해 관심을 가져야 업데이트 확인하기 위해 edmx 파일을 및 업데이트 (테이블을 변경 사용) 내 솔루션 인' TPH 매핑에서 'Discriminator' 열 값을 사용합니다. 엔티티 나 매핑에서 문제가있을 수 있으므로 코드를 보여줘야한다고 생각합니다. 예를 들어 판별 자의 열 이름이'ClassName' (기본값이 아님)으로 구성되어 있습니까? – Slauma

+0

UI를 사용하여 edmx에서 식별자를 설정하고, 테이블을 마우스 오른쪽 버튼으로 클릭하고, 테이블 매핑을 선택하고, ClassName에 대한 맵에서 ClassName = CategoryRoot로 설정하고, 카테고리를 만들지 만 내 CategoryRoot 객체를 만듭니다. category classname 값이 null로 설정되어 있고, want is Category로 설정되어 있습니다. 나는 discriminator를 설정하는 방법을 찾을 것이다. – freddoo

답변

1

null을 허용하도록 db 구조를 변경했습니다. 개체 이름이 테이블 이름과 일치하면 EF는 null을 설정하고 파생 클래스의 discreminator 이름을 설정합니다.

0

옛날 질문이지만 방금 만났습니다. .net 4.0 코드에서 처음에는 "면책 조항 열"을 충족시키지 못했지만 net 3.5로 다운 그레이드하면 하루 동안 지쳐 버렸습니다. 이것은 데이터베이스에 열이 NULL 허용하는

변경이 변경 (허용 널)