我的团队正在致力于将旧系统从delphi转换为asp.net核心。 并且在测试过程中,我们发现依赖项注入中使用的dbcontext从未被丢弃。
所以要弄清现象的原因 我已经使用Visual Studio asp.net核心Web应用程序模板(天气预报)创建了解决方案,并添加了以下代码。
select dst.*
from dept_start_times dst
where dst.start_time = (select max(dst2.start_time)
from dept_start_times dst2
where dst2.department = dst.department
);
public class EmptyDbContext : DbContext
{
public EmptyDbContext(DbContextOptions<EmptyDbContext> options) : base(options)
{
Console.WriteLine("***EmptyDbContext Created");
}
public override void Dispose()
{
base.Dispose();
Console.WriteLine("***EmptyDbContext Disposed");
}
}
public class EmptyService : IDisposable
{
public EmptyService()
{
Console.WriteLine("EmptyService Created");
}
public void Dispose()
{
Console.WriteLine("EmptyService Disposed");
}
...
}
public class Startup
{
...
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddDbContext<EmptyDbContext>(options =>
options.UseSqlite("DataSource=:memory:"), ServiceLifetime.Transient
);
services.AddTransient<EmptyService>();
}
...
}
public class WeatherForecastController : ControllerBase
{
...
public WeatherForecastController(ILogger<WeatherForecastController> logger, EmptyDbContext edc, EmptyService es)
{
_logger = logger;
}
...
}
查看结果日志EmptyService的配置符合预期,但EmptyDbContect却没有。
这是因为还是我滥用dbcontext的依赖项注入?