2009-07-28 1 views
1

엔티티 데이터 모델을 사용하지만 문제점이 있습니다. 예를 들어 Customers 테이블의 categoryId (테이블 카테고리의 외래 키)가 cutomers 엔티티에 표시되지 않았습니까? 어떻게이 값을 다시 얻거나 설정할 수 있습니까?엔티티 데이터 모델의 외래 키

답변

1

Entity Framework는 실제 속성 자체를 렌더링하므로 형식 범주 속성을 만듭니다. 즉 :

Customer.Category = new Category()

엔터티 프레임 워크는 내부적으로 참조/외래 키를 처리합니다.

+0

괜찮지 만 카테고리 테이블에 다른 외래 키 (카테고리 parentId)가 있습니다 (동일한 테이블의 categoryid에서 parentId 외래 키) 어떻게이 필드를 얻을 수 있습니까? –

1

Colin의 대답은 현재 사용 가능한 Entity Framework (.NET 3.5 SP1 사용)의 경우 100 % 정확하고 사실입니다.

미래에 언젠가 .NET 4.0과 함께 출시 될 다가오는 아직 릴리스되지 않은 EF v2 (또는 EF 4 ??)에 대해 EF 팀은 "외래 키 연결"이라고하는 것을 추가했습니다. 본질은 관련 엔티티 전체를 생성 /로드/할당하는 대신 외래 키 값 (예 : CategoryID)을 지정할 수 있습니다.

이 우수한 게시물에 대한 자세한 내용보기 :

면책 조항 : 이것을 아직 출시되지 않은 제품에 대한없이 배달 시험판 정보는 공식적으로 발표 된 날짜 - 지금 베타 1을 다운로드 할 수 있습니다.

마크

+0

괜찮지 만 카테고리 테이블 (다른 테이블의 categoryID에있는 foreignId 외래 키)에 다른 외래 키 (카테고리 parentId)가 있습니다. 어떻게이 필드를 가져올 수 있습니까? –

+1

그런 다음 Category.Category.Id를 사용합니다 (EF 다이어그램을 열고 Category Entity를 선택하면 모든 사용 가능한 속성 목록이 제공됩니다.) – Colin

+0

@Wafaa : 참조 된 Category의 ParentID를 가져와야하는 경우, 그러면 전체 엔티티 엔티티를로드 한 다음 해당 엔티티에서 "ParentID"열을 설정해야합니다. –

0

이렇게 할 수 없습니까?

Customer.CategoryReference.EntityKey = Key; 
0

당신은 당신이 외래 키의 클래스가 아닌 외부 키 그 자체에 대한 참조를 찾을 수 있습니다 .NET 3.5는 .NET 프레임 워크 4 이하를 사용해야 외래 키 그 자체를보고 싶은 경우

Store s = new Store(); 
       User u=s.User;//bring referance of the user with foreign key .net 3.5 & 4 
       int i = s.User_ID;//bring the user_id forein key .net 4