如何从ObjectContext
中提取Types
列表?
例如,我有一个包含名为“Bank”和“Company”的实体的对象上下文。 我想获取它们的EntityObject类型。
我该怎么做?
如何从ObjectContext
中提取Types
列表?
例如,我有一个包含名为“Bank”和“Company”的实体的对象上下文。 我想获取它们的EntityObject类型。
我该怎么做?
我假设您在运行时想要查询生成的 ObjectContext
类,以获取 EntityObject
类的列表。这时就需要进行反射操作:
PropertyInfo[] propertyInfos = objectContext.GetType().GetProperties();
IEnumerable<Type> entityObjectTypes =
from propertyInfo in propertyInfos
let propertyType = propertyInfo.PropertyType
where propertyType.IsGenericType
&& propertyType.Namespace == "System.Data.Objects"
&& propertyType.Name == "ObjectQuery`1"
&& propertyType.GetGenericArguments()[0].IsSubclassOf(typeof(EntityObject))
select propertyType.GetGenericArguments()[0];
System.Data.Objects.ObjectQuery<T>
,其中 T
是 EntityObject
的子类。MetaModel.GetModel(objectContext.GetType()).Tables.Select(t => t.EntityType);