【发布时间】:2017-11-18 10:45:11
【问题描述】:
我正在尝试使用子查询从子表中获取前 1 个结果。当我尝试使用子查询使用orderby or OrderByDescending 时,它会抛出
NullReferenceException
。不使用orderby or OrderByDescending 我的查询成功执行。
但我想获得子查询的最后一条记录。我的应用已连接到 Mysql 数据库。
下面是我的代码
var result = (from ud in db.user_devices
join a in db.access_info on ud.u_id equals a.u_id
join d in db.device_num on ud.dev_id equals d.DevId
//let pi = db.packet_info.Where(x => x.DevId == ud.dev_id && x.DevId != null).OrderByDescending(x =>x.systime).FirstOrDefault()
//where pi != null
select new
{
fuel = db.packet_info.Where(x => x.DevId == ud.dev_id).OrderByDescending(x => x.systime).Select(x => x.fuel).FirstOrDefault(),
//removed other fields
}).ToList();
【问题讨论】:
-
您能否提供 db.packet_info 的定义或至少是 systime 属性的类型?
-
它的数据类型是mysql中的timestamp和C#中的DateTime
-
系统时间中是否有可能出现空值?
-
没有空值..我检查过..
标签: c# mysql entity-framework linq linq-to-mysql