2009-10-20 4 views
0

기본 키가 char 데이터 형식 인 제 3 자 데이터베이스가 있습니다. 쿼리를 실행할 때 include를 사용하여 자식 테이블을 포함시킵니다. 하지만 카운트는 0입니다. SQL 프로파일 러를보고 결과가 반환됩니다. 내가 볼 수있는 유일한 것은 관계 열이 char 인 문제입니다. 이것에 대한 해결책은 무엇입니까?관계 엔터티 프레임 워크 문제의 Char 데이터 형식

+0

엔티티 모델과 쿼리를 표시 할 수 있습니까? 숯 열쇠는 그 자체로 문제가되어서는 안됩니다. –

+0

나는 라이센스 테이블을 가지고 있습니다. 기본 키는 Char (30) 인 License_Number입니다. 자식 테이블은 License_Number 필드와 설정된 관계가있는 License_Item입니다. 엔티티 라이센스에는 일대 다 관계로 LicenseItems라는 탐색 속성이 있습니다. from l. context.License.Include ("LicenseItems") 여기서 l.License_Number == "1234"select l; 라이센스가 반환되고 라이센스 항목이로드되지만 카운트는 0입니다. – Marsharks

답변

0

Char 유형에주의하십시오. "1234            "! = "1234"! DB는이를 알지 못하지만 EF는이를 알 수 있습니다.

+0

데이터베이스에서 반환 된 레코드는 데이터베이스에있는 레코드입니다. 맞습니까? 쿼리에서 1234를 물을 수는 있지만 쿼리에서 반환 된 결과는 부모의 경우 "1234"이고 자식의 경우 "1234"입니다. – Marsharks

+0

DB에 따라 다릅니다. SQL Standard에는 공간이 포함됩니다. (VARCHAR과는 반대로 이들을 필요로하지 않습니다.) –

+0

그래서 내 관계는 여전히 char에서 작동하지 않습니다. – Marsharks

0

해결 방법이 있습니다. 내 쿼리에서 자식을 선택하고 부모를 포함시키고 목록의 첫 번째 자식을 가져온 다음 부모에 대한 참조를 얻으면 모든 자식과 부모를 얻을 수 있습니다.

  var query = from l in Context.LicenseItems 
         .Include("License") 
+0

Char는 빨간색 청어입니다. 다음은 실제 문제입니다. http://blogs.msdn.com/alexj/archive/2009/06/02/tip-22-how-to-make-include-really-include.aspx –

관련 문제