독립적 인 realtions 또는 외래 키 관계를 사용하는지 여부에 따라 다릅니다.
독립적 인 관계의 경우 다중성을 검사하여 1 : N의 주 끝을 찾을 수 있습니다. 당신이 EF.Utility.CS.ttinclude에서 포함 된 클래스입니다 MetadataTools
의 방법을 사용할 수 있습니다 외래 키 관계의 경우
// check each navigation property
foreach (var navProperty in entity.NavigationProperties)
{
// use only properties where one end has * an second end has 1 or 0..1 multiplicity
// Not sure if the condition should not be reversed
if(navProperty.ToEndMember.RelaltionshipMultiplicity ==
RelationshipMultiplicity.Many &&
navProperty.FromEndMember.RelationshipMultiplicity !=
RelationshipMultiplicity.Many)
{
...
}
}
: 내가 좋아하는 뭔가를 시도 할 것입니다. 방법의
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes
하나는 두 가지 접근법이 이미 POCO T4 템플릿에 사용되는 GetPrincipalProperties(navProperty)
입니다 : 일반적으로 설치.
신속한 답변을 보내 주셔서 감사합니다. 그래 네가 맞아. 이것은 t4에서 이미 사용되었습니다. 그러나 우리가 1-1 관계를 가지고 있다면이 논리는 작동하지 않을 것입니다. 고객이 최소한 최대 1 대의 전화를 가질 수 있다고 가정 해 봅시다. 관계를 설정하는 동안 Customer를 principal로 설정하면 주체 "Customer"를 어떻게 찾을 수 있는지 말하십시오. – WPFProgrammer
이 함수 "IsPrincipalEndOfIdentifyingRelationship (AssociationEndMember associationEnd)"을 사용할 수 있지만 탐색 속성이 있으면 매개 변수로 전달할 항목을 알 수 없습니다. – WPFProgrammer
@WPFProgrammer : 해당 기능이 도움이되지 않습니다. 식별 관계는 종속 엔터티가 FK와 주요 엔터티가 포함 된 복잡한 키를 가지고있는 외래 키 관계의 매우 특별한 유형입니다. FK가 포함 된 측면에 대한 정보가 메타 데이터에 없기 때문에 1 : 1 독립 관계가있는 주체를 찾을 수 있는지 확신 할 수 없습니다. 이 경우 정보를 포함 시키려면 모든 관계를 외래 키 관계로 변환해야합니다. –