我正在研究一个使用NpGsql EntityFramework 6连接到PostgreSQL数据库的项目,当我尝试在GetAdminUsersCount中执行查询时,出现了标题问题的异常:

public class GenieRepository : IDisposable
{
    GenieDbContext db = new GenieDbContext();
    public IEnumerable<User> GetUsers()
    {
        return db.Users;
    }
}

public int GetAdminUsersCount()
{
    return repo.GetUsers().Where(u => u.Role.RoleName == "Administrator").Count();
}

此错误的原因是什么以及如何解决?

最佳答案

我已经在linq查询之后使用ToList<T>成功解决了问题,如下所示:

using (ElisContext db = new ElisContext()) {
    var q = from a in db.aktie select a;
    List<aktie> akties = q.ToList<aktie>();
    foreach (aktie a in akties) {
        Console.WriteLine("aktie: id {0}, name {1}, market name {2}"
                 , a.id, a.name, a.marked.name);
    }
}

请注意完成该操作的q.ToList<T>。 .Net将linq语句的执行推迟到最新一刻,这可能是问题的一部分。我尝试在foreach中使用q,但没有成功。

关于c# - NpGsql EntityFramework 6- "An operation is already in progress",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34544227/

10-13 02:03