我正在使用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