public static List <EdmProperty> GetPropertiesFromEntityModel(this DbContext context, Func <EdmProperty, bool> predicate) { MetadataWorkspace workspace = ((IObjectContextAdapter)context).ObjectContext.MetadataWorkspace; ObjectItemCollection itemCollection = (ObjectItemCollection)(workspace.GetItemCollection(DataSpace.OSpace)); var varchars = itemCollection .Where(gi => gi.BuiltInTypeKind == BuiltInTypeKind.EntityType) .Cast <EntityType>() .SelectMany(entityTypes => entityTypes.Properties .Where(predicate)) .ToList(); return(varchars); }