Avoid makeups that contain any oils as well as silicones which are just as bad and ruin makeup staying power. Look in the ingredients to avoid them in primers, foundations, powders , etc... silicas however are not silicones and are fine to use.
Use alongside your makeup, a good setting powder that will absorb oils such as mattify! cosmetics. I like to use it before and after makeup to make it last longer.
Last, apply a good setting spray that will lock makeup in place all day. My favorite is Ben Nye Final Seal, it works better than Urban Decay or Skindinavia. It is originally made for stage and film makeup so you know that it is truly made to last. Its also pretty affordable.