linq - 我的快速观看结果视图中没有结果,但结果在非公共成员下
问题描述
在我的查询中,当我看到快速观看时,在结果下它不返回任何结果,但是当通过源下的非公共成员和结果查看时,我看到了我的所有结果,我怎样才能访问它们?为什么会这样?我将 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 与 Lazy Evaluation 一起工作的方式,实际上你只是为变量取回了一个占位符test
,当测试变量被其他代码使用时,实际的查询将运行。由于您有一个“where”子句,您应该期待返回一个 IEnumerable,因此您可以在查询的末尾添加ToList()
或ToArray()
,这将强制查询运行并将列表或数组存储在您的test
变量中。这应该使您可以在查询运行后立即访问该数据。