代码之家  ›  专栏  ›  技术社区  ›  Tamir

从EntityFramework ObjectContext获取类型集合

  •  3
  • Tamir  · 技术社区  · 16 年前

    Types ObjectContext ?

    例如,我的对象上下文包含一个名为“Bank”的实体和一个名为“Company”的实体。 我想获取它们的EntityObject类型。

    我该怎么做?

    2 回复  |  直到 13 年前
        1
  •  5
  •   Martin Liversage    15 年前

    我假设您在运行时希望查询生成的 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 是的一个子类 实体对象 .

        2
  •  0
  •   futuresandwich    13 年前

    MetaModel.GetModel(objectContext.GetType()).Tables.Select(t => t.EntityType);
    
    推荐文章