DataContextFactory is cumbersome to customize. I want to use my own custom subclass of DataContext (which is probably the only customization ever needed, right?) and in order to do so I have to copy the complete source of DataContextFactory and replace DataContext with MyContext. It can be made much easier by refactoring the constructor call into an overridable method that does just that. CayenneContextFactory has the same problem.