Используйте DbContext в ASP. Net Singleton Injected Class

Мне нужно получить доступ к моей базе данных в классе Singleton, созданном в моем классе Startup. Кажется, что его внедрение напрямую приводит к удалению DbContext.

Я получаю следующую ошибку:

Невозможно получить доступ к удаленному объекту. Имя объекта: «MyDbContext».

У меня двоякий вопрос: почему это не работает и как я могу получить доступ к своей базе данных в экземпляре класса Singleton?

Вот мой метод ConfigureServices в моем классе запуска:

public void ConfigureServices(IServiceCollection services)
{
    // code removed for brevity

    services.AddEntityFramework().AddSqlServer().AddDbContext<MyDbContext>(
        options =>
        {
            var config = Configuration["Data:DefaultConnection:ConnectionString"];
            options.UseSqlServer(config);
        });

    // code removed for brevity

    services.AddSingleton<FunClass>();
}

Вот мой класс контроллера:

public class TestController : Controller
{
    private FunClass _fun;

    public TestController(FunClass fun)
    {
        _fun = fun;
    }

    public List<string> Index()
    {
        return _fun.GetUsers();
    }
}

Вот мой FunClass:

public class FunClass
{
    private MyDbContext db;

    public FunClass(MyDbContext ctx) {
        db = ctx;
    }

    public List<string> GetUsers()
    {
         var lst = db.Users.Select(c=>c.UserName).ToList();
        return lst;
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос