lambda SQL MSSql执行这段没问题。MYSql执行出问题。

weixin_40339796 2018-01-06 10:01:16
备注:2表左连接 (A.F_Id equals B.F_PortId ) 关系是1对多 但是查询出来的数据是:A.F_Id equals B.F_PortId 最新的一条数据。假如:A 表有一条数据 A.F_Id =0; B表有10条数据:0 XX,0 X1 ,0 X2 ... ... 那么根据创建时间排序找出最新的一条记录。
当然也有可能B表是空数据。
求:大神指点一二。嘿嘿 。 (此处应该有笑脸)但是CSDN居然不能输入笑脸。。。。。。。

var result = (from A in sl_portcode.Select(a => new { a.F_Id, a.F_LocationNumber, a.F_LayerNumber, a.F_Code, a.F_GroupId })
join B in sl_portlog on A.F_Id equals B.F_PortId into H
from X1 in H.DefaultIfEmpty().Select(a => new { a.F_InTime, a.F_OutTime, a.F_CreatorTime }).OrderByDescending(a => a.F_CreatorTime).Take(1)
select new StorageLayout
{
F_Id = A.F_Id,
X = A.F_LocationNumber.Value,
Y = A.F_LayerNumber.Value,
F_Code = A.F_Code,
F_GroupId = A.F_GroupId,
F_Color = (X1==null?"": X1.F_InTime != null && X1.F_OutTime == null ? "yellow" : (X1.F_InTime != null && X1.F_OutTime != null) ? "blue" : null)
(X1.F_InTime != null && X1.F_OutTime == null ? "yellow" : (X1.F_InTime != null && X1.F_OutTime != null) ? "blue" : null)
}).OrderByDescending(a => a.F_GroupId).Where(u => listsss.Contains(u.F_GroupId));
...全文
911 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40339796 2018-01-25
  • 打赏
  • 举报
回复
引用 2 楼 wangzl1163 的回复:
可以看下生成的SQL语句,修改为Mysql支持的SQL语句,试一下能不能执行,如果能执行,SQL语句没问题,那么是切换数据库的问题,如果有问题那是SQL语句本身的问题
SQL 语句是用LAMBDA表达式生成的标准SQL语句 应该不会有问题。我估计问题出现在(a => new { a.F_InTime, a.F_OutTime, a.F_CreatorTime }).OrderByDescending(a => a.F_CreatorTime).Take(1)这个语句上面。
  • 打赏
  • 举报
回复
可以看下生成的SQL语句,修改为Mysql支持的SQL语句,试一下能不能执行,如果能执行,SQL语句没问题,那么是切换数据库的问题,如果有问题那是SQL语句本身的问题
weixin_40339796 2018-01-06
  • 打赏
  • 举报
回复
自己顶自己。。。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧