首页 > 解决方案 > 我的快速观看结果视图中没有结果,但结果在非公共成员下

问题描述

在我的查询中,当我看到快速观看时,在结果下它不返回任何结果,但是当通过源下的非公共成员和结果查看时,我看到了我的所有结果,我怎样才能访问它们?为什么会这样?我将 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
                    });

标签: linqasp.net-core

解决方案


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


推荐阅读