I needed to change my Delegate() constructor from public to private.
I based my answer on this answer: https://stackoverflow.com/a/22813915/1758319. The constructor must be on the object that contains the object to be lazy-loaded and must be publicly accessible.
i.e.
public Delegate() { }