Best Way To Load and Cache Scoped Data? - C#