[英]Get Types Collection from EntityFramework ObjectContext
如何从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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.