I 데이터베이스에서 다음 스키마 있습니다엔티티 프레임 워크 : 조건부 외래 키
- BillingReferences (ReferencingType TINYINT이, TINYINT, ReferencedType 에게 TINYINT을 ReferencingId TINYINT을 ReferencedId,이 isActive 비트) - 모든 필드 (IsActive 제외)는 고유 인덱스의 일부입니다.
- BillingType (BillingTypeId TINYINT 이름 VARCHAR (50))
ReferencingType 및 ReferencedType는 BillingTypes의 외래 키이다. BillingTypes에 다음 행이 있습니다.
BillingTypeId | 이름
1 | 레이블
2 | 국가 :
3 | PaymentProviders
4 | PaymentOptions
5 | 은행
다음 엔터티 중 하나가 (참조 된/참조하는 유형에 따라 다름)의 ReferecingId 및 ReferencedId는 이드 대표:
- 은행 (BankId TINYINT, 이름 VARCHAR를 (50))
- 나라 (CountryId TINYINT, 이름 VARCHAR (50))
- 라벨 (LabelId TINYINT 이름 VARCHAR (50))
- PaymentProviders (PaymentProviderId TINYINT 이름 VARCHAR (50))
- PaymentOptions (PaymentOptionId TINYINT , 이름 varchar (50))
미래에는 각 엔티티에 더 많은 다른 열이 추가되지만 지금은 단순화를위한 스키마입니다.
국가 (국가 제외) 사이에 (1- ) 개의 연결이 있습니다. 레이블의 뱅크, PaymentProviders 및 PaymentOptions에 대한 (1-)의 연결이 있습니다.내가 CountryId 3003 과 국가에 BankId (201)과 은행을 연결하려는 경우 그리고 PaymentProviders 내가 그 모양을 BillingReferences에 기록이됩니다 PaymentProviders
그래서 예를 들어의 연결 (1 *)가 : ReferencingType = 5 ReferencingId = 201 ReferencedType = 2 ReferencedId = 3003 이 isActive = 1
우리 때문에 확장 성 고려의 각 유형의 접속에 대한 연결/참조 테이블을 만들지 않았다 - 우리가 추가하려면 우리가해야하는 또 다른 엔티티는 그 테이블을 추가하고 그것에 대한 레코드를 추가하는 것입니다. BillingReferences 및 BillingType.
문제는 내가 엔티티의 조건부 외국 BillingReferences 사이의 키와 각을 구성 할 수 없습니다 내가
내가 찾을 수 없습니다 .../구성 중 하나 EntityFramework로 매핑하는 것 같지 수 있다는 것입니다 이 유형의 구현을 사용하는 자습서 또는 예제 각 연결에 대한 참조 테이블을 만들겠습니까, 아니면 EntityFramework를 사용하여이 테이블을 구성 할 수 있습니까? 도움말 :
"항상 모든 유형의 참조를 원하지 않는 한 ... -항상 특정 은행과 관련된 모든 국가 또는 특정 라벨과 연결된 모든 은행을 보여 드리겠습니다. 사용자는 원하는 엔터티를 선택한 엔터티와 연결/연결 해제 할 수 있어야합니다. – Captain