当前位置:  开发笔记 > 编程语言 > 正文

NpGsql EntityFramework 6 - "操作已在进行中"

如何解决《NpGsqlEntityFramework6-"操作已在进行中"》经验,为你挑选了1个好方法。

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

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

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

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



1> 小智..:

我已经成功地ToList在linq查询之后使用右边的方法来解决问题,如下所示:

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

注意q.ToList这样做..Net将linq语句的执行推迟到最新时刻,这可能是问题的一部分.我试图在foreach中使用q而没有成功.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有