I think that if in LazyInitializer you annotate TValue without question mark (https://github.com/dotnet/efcore/pull/23126#discussion_r514300131), and you annotate _materializers as nullable here, it should be fine.