操作无法完成,因为DbContext已被异常处理

本文关键字:DbContext 异常处理 因为 操作 | 更新日期: 2023-09-27 18:12:52

我试图添加一个模型实例填充值数据库,但它显示我的错误

"操作无法完成,因为DbContext已被处置。"

我的代码

private async void timerHandlerFixerIO(object sender, EventArgs e)
    {
        string html = string.Empty;
        string url = @"http://api.fixer.io/latest";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
        request.AutomaticDecompression = DecompressionMethods.GZip;
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        using (Stream stream = response.GetResponseStream())
        using (StreamReader reader = new StreamReader(stream))
        {
            html = reader.ReadToEnd();
        }
        Debug.WriteLine(html);
        FixerIO FixerIOInstance = new FixerIO();
        FixerIOInstance.rates = new rates();
        FixerIOInstance = JsonConvert.DeserializeObject<FixerIO>(html);
        db.FixerIOs.Add(FixerIOInstance);
        await db.SaveChangesAsync();
    }

执行此行时出现错误异常

db.FixerIOs.Add(FixerIOInstance);

timerHandlerFixerIO方法外的DbContext声明,如

private ApplicationDbContext db = new ApplicationDbContext();

操作无法完成,因为DbContext已被异常处理

可以这样使用DbContext

using(var db = new ApplicationDbContext())
{
   db.FixerIOs.Add(FixerIOInstance);
   await db.SaveChangesAsync();
}