2011-08-22 6 views
0

엔티티의 컨텍스트 및 속성 이름에서 모든 엔티티 이름을 가져오고 싶습니다. 두 번째 문제는 리플렉션을 사용하여 해결할 수 있지만 첫 번째 부분을 수행하는 방법은 무엇입니까?EF 4의 컨텍스트에서 엔티티 이름 가져 오기

예를 들어, 엔티티가 UserAddress 인 경우 각 사용자에게 주소가 있습니다. 결과적으로 나는 다음과 같은 얻을 필요가 :

Entity: User 
Property: LastName 
Property: FirstName 
Property: Address 

Entity: Address 
Property: City 
Property: Street 

답변

0

시작하려면 엔티티 (기본 유형 ComplexObject)는 자신의 클래스에 보관되는 상황에서 실제로 구별된다. 이러한 유형의

List<Type> Types = Assembly.GetExecutingAssembly().GetTypes().Where(T => T.IsSubclassOf(typeof(ComplexObject))).ToList(); 

각이 EdmxComplexType 속성으로 정의된다

당신은 당신이 ComplexObject과 같이 상속 모든 유형에 대한 현재 어셈블리를 검색 할 relfection를 사용할 수있는 모든 개체 유형을 찾으려면 네임 스페이스 이름과 복합 유형 이름을 제공합니다. 이 같은 각 유형 T에 대한, 이러한 속성을 얻을 수 있습니다 :

+0

감사를하는 데 도움이

T Instance_Of_T = (T)Activator.CreateInstance(T); System.Data.Objects.DataClasses.EdmxComplexTypeAttribute complexTypeAttr = TypeDescriptor.GetAttributes(Instance_Of_T).OfType<System.Data.Objects.DataClasses.EdmxComplexTypeAttribute>().ToList().Single(); string NamespaceName = complexTypeAttr.NamespaceName; string TypeName = complexTypeAttr.Name; 

희망을. 그것은 도움이되지만 '복잡한'대신에 '엔티티'라는 키워드를 사용해야했습니다 (예 : EdmEntityTypeAttribute). – Vasily