linq to sql和linq to object还是有不同的…… 做的一个同步器,首先要拿最近一天的同步数据:
var lstCptrSellStatus = (from p in db.CptrSellingStatus where p.ItemId == CptrItemId select p).ToList();
var lastCptrSellStatus = lstCptrSellStatus.Where(p => p.SynDate == lstCptrSellStatus.Max(g => g.SynDate)).FirstOrDefault();
var testQuery=lstCptrSellStatus.Any()?lstCptrSellStatus.Max(g => g.SynDate):0;
------解决方案-------------------- 如果一个序列没有元素,调用Max就出错了。
比如
int[] a = new int[] { };
int max = a.Max(); // 出错 ------解决方案-------------------- 老曹已经跟你说了原因了啊,你的错误出现在子查询语句上
var lastCptrSellStatus = lstCptrSellStatus.Where(p => p.SynDate == lstCptrSellStatus.Max(g => g.SynDate)).FirstOrDefault();
换一下这样来实现:
var lastCptrSellStatus = lstCptrSellStatus.OrderByDescending(p => p.SynDate ).FirstOrDefault();