首先,實體(基本類型ComplexObject
)實際上是從不同的背景下,被安置在自己的類。
如果你想找到所有的實體類型,你可以使用relfection搜索當前組件的任何類型的繼承ComplexObject
像這樣:
這些類型的
List<Type> Types = Assembly.GetExecutingAssembly().GetTypes().Where(T => T.IsSubclassOf(typeof(ComplexObject))).ToList();
每一個都與一個EdmxComplexType
屬性定義,它爲您提供了命名空間名稱和複雜類型名稱。你可以得到這些屬性,每種類型T
,像這樣:
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