【问题标题】:Task<bool> causes Entity Framework to Hang [duplicate]Task<bool> 导致实体框架挂起 [重复]
【发布时间】:2018-06-02 01:18:57
【问题描述】:

当我将方法签名更改为任务实体框架时,SaveChanges 挂起。为什么会这样?

此代码失败

public async Task<bool> SaveAsync(agency agency)
    {
        using (var ctx = new AvnEntities())
        {
            try
            {
                ctx.agencies.Add(agency);
                await ctx.SaveChangesAsync();
                return true;
            }
            catch (System.Exception)
            {
                return false;
            }
        }
    }

此代码有效

public async Task SaveAsync(agency agency)
    {
        using (var ctx = new AvnEntities())
        {
            try
            {
                ctx.agencies.Add(agency);
                await ctx.SaveChangesAsync();
            }
            catch (System.Exception)
            {
                throw;
            }
        }
    }

【问题讨论】:

标签: c# entity-framework async-await


【解决方案1】:

正如 Mick 的评论和这里的帖子 Asyn-Hanging

我创建了一个死锁,因为在我的 UI 线程中我正在等待获取 Task.Result。

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多