。Net核心和Npgsql的查询错误,正在执行命令

问题描述 投票:0回答:1

我正在使用Postgres,但在运行以下查询时出现错误:

     var devices = (from m in db.turbineDevices.AsEnumerable()
                       join c in db.accessinfMaster.AsEnumerable() on
                       m.turbine_ip equals c.turbine_id into tmp
                       from tm in tmp.DefaultIfEmpty()
                       join t in db.v_vpn_gateway.AsEnumerable()
                       on m.turbine_ip equals t.turbine_id into tmp2
                       from tm2 in tmp2.DefaultIfEmpty()
                       where m.turbine_ip.ToString() == id

                       select new TurbineDvce
                       {

                           DeviceIP = m.device_ip.ToString(),
                           DeviceType = m.device_type,
                           FirmwareVersion = m.firmware_version,                           
                       }).AsEnumerable().Union(from t in db.v_vpn_gateway
                                               where t.turbine_id.ToString() == id
                                               select new TurbineDvce
                                               {
                                                   Comments = "VPN Gateway",
                                                   Description = string.Empty,
                                                   DeviceIP = t.vpn_gateway.ToString(),
                                                   DeviceType = t.device_type,
                                                   FirmwareVersion = string.Empty,
                                                   Model = t.model,
                                                   Password = string.Empty,
                                                   Phone = string.Empty,
                                                   Producer = t.producer,
                                                   PublicIP = t.vpn_public_ip.ToString(),
                                                   TurbineId = t.turbine_id.ToString(),
                                                   Username = string.Empty
                                               } ).OrderBy(m => m.DeviceIP).ThenByDescending(m => m.Description);

这是我的DbContext:

    services.AddDbContext<DbContextClass>(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

在我的控制器中,我注入了上下文:

    public class AcessInfoData:IAccessInfo
  {
    private DbContextClass db;
    public AcessInfoData(DbContextClass context)
    {
        db = context;
    }

当到达我的LINQ时,它给我一个错误:Npgsql.NpgsqlOperationInProgressException:一个命令已经在进行中:

 SELECT v.turbine_ip, v.comments, v.description, v.device_ip, v.device_type, v.firmware_version, v.model, v.producer, v.psw, v.public_ip, v.tel_number, v.username
postgresql asp.net-core npgsql
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.