我的快速观看结果视图中没有结果,但结果在非公开成员下



在我的查询中,当我看到快速观察时,在结果下它没有返回任何结果,但是当通过源代码下的非公共成员并在视图中查看结果时,我看到了我的所有结果,我如何访问它们? 为什么是这样的?我将PostgreSQL用于我的数据库

var test = (from t in db.v_vpn_gateway.AsEnumerable()
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
});

看起来你需要"水化"结果。Linq 使用延迟计算的方式,实际上您只是为test变量取回一个占位符,当其他代码使用该测试变量时,实际查询将运行。由于您有一个 "where" 子句,您应该期望返回一个 IEnumerable,因此您可以在查询末尾添加ToList()ToArray(),这将强制查询运行并将列表或数组存储在test变量中。这应该允许您在查询运行后立即访问该数据。