How to Per-Request caching in ASP.net core

Viewed 8273

My old code looks like this:

public static class DbHelper {
    // One conection per request
    public static Database CurrentDb() {
        if (HttpContext.Current.Items["CurrentDb"] == null) {
            var retval = new DatabaseWithMVCMiniProfiler("MainConnectionString");
            HttpContext.Current.Items["CurrentDb"] = retval;
            return retval;
        }
        return (Database)HttpContext.Current.Items["CurrentDb"];
    }
}

Since we don't have HttpContext anymore easily accesible in core, how can I achieve the same thing?

I need to access CurrentDb() easily from everywhere

Would like to use something like MemoryCache, but with Request lifetime. DI it's not an option for this project

2 Answers
Related