Для начала, сущности (базовый тип 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;
Надеюсь, это поможет