ManyToManyLoaderFactory.Instance is created explicitly in the model and cached privately. It is never resolved from DI, so providers that need to change their implementation cannot do so. I suspect this also applies to other loaders, but I haven't verified. All should be provided by D.I. in some way, although that could be before the model is built so it can still be accessed directly from the model if that is desirable. (There is a DI/model consistency issue here, but it exists in other places, and shouldn't be a problem in reality.)
ManyToManyLoaderFactory.Instanceis created explicitly in the model and cached privately. It is never resolved from DI, so providers that need to change their implementation cannot do so. I suspect this also applies to other loaders, but I haven't verified. All should be provided by D.I. in some way, although that could be before the model is built so it can still be accessed directly from the model if that is desirable. (There is a DI/model consistency issue here, but it exists in other places, and shouldn't be a problem in reality.)