C# 实体框架核心内存泄漏?

C# 实体框架核心内存泄漏?,c#,memory-leaks,ef-core-3.0,C#,Memory Leaks,Ef Core 3.0,我将EntityFrameworkCore用于带有MySQL数据库的Discord机器人。就其本身而言,一切都运行得很好,但每次我访问DbContext,都会创建一些对象,这些对象再也不会被处理。在Visual Studio诊断工具中,经过几次数据库查询后,它看起来如下所示: 这就是我如何将实体框架集成到我的程序中: var services = new ServiceCollection().AddDbContext<DatabaseContext>(x => x.UseM

我将EntityFrameworkCore用于带有MySQL数据库的Discord机器人。就其本身而言,一切都运行得很好,但每次我访问
DbContext
,都会创建一些对象,这些对象再也不会被处理。在Visual Studio诊断工具中,经过几次数据库查询后,它看起来如下所示:

这就是我如何将实体框架集成到我的程序中:

var services = new ServiceCollection().AddDbContext<DatabaseContext>(x => x.UseMySql("server=localhost;database=testdb;user=root"));
我还有这个
数据库服务
,通过它我可以获得
数据库上下文

public class DatabaseService
{
    private readonly IServiceProvider _serviceProvider;

    public DatabaseService(IServiceProvider serviceProvider)
    {
        _serviceProvider = serviceProvider;
    }

    public TContext Open<TContext>() where TContext : DbContext
    {
        return _serviceProvider.GetRequiredService<TContext>();
    }
}
公共类数据库服务
{
私有只读服务器ViceProvider\u服务提供商;
公共数据库服务(IServiceProvider服务提供商)
{
_服务提供者=服务提供者;
}
public TContext Open(),其中TContext:DbContext
{
返回_serviceProvider.GetRequiredService();
}
}
这是我进行数据库查询的方式:

using (var db = _databaseService.Open<DatabaseContext>())
{
    var guilds = db.Guilds.Where(p => p.GuildName == "MyGuild");
}
使用(var db=\u databaseService.Open())
{
var guilds=db.guilds.Where(p=>p.GuildName==“MyGuild”);
}
即使我在查询中包含一个
AsNoTracking()
,也会为此查询创建从未处理过的对象

我完全不知道我的错误在哪里,我希望我的例子足以看到错误。如果没有,下面是我的Discord Bot的GitHub存储库:

public class DatabaseService
{
    private readonly IServiceProvider _serviceProvider;

    public DatabaseService(IServiceProvider serviceProvider)
    {
        _serviceProvider = serviceProvider;
    }

    public TContext Open<TContext>() where TContext : DbContext
    {
        return _serviceProvider.GetRequiredService<TContext>();
    }
}
using (var db = _databaseService.Open<DatabaseContext>())
{
    var guilds = db.Guilds.Where(p => p.GuildName == "MyGuild");
}