日期:2014-05-17  浏览次数:20428 次

求助,linq简化
本帖最后由 yj258213056 于 2013-12-13 11:38:25 编辑
哪位大哥帮忙看看下面的代码怎么简化,关键是这句

XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID))

怎么能只查询一次呢?

var data = sendDetails.Select(m => new
                {
                    CheltemName = XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID)).CheltemBaseInfo.ChineseName,
                    ProductSpec = XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID)).SupplierProductSpe,
                    RFID = m.RFID,
                    CabinetCode = m.CabinetSendDataInfo.CabinetCode,
                    DangerousLevel = XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID)).CheltemBaseInfo.DangerousLevel,
                    InTime = XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID)).InTime,
                    Remark = XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID)).Remark
                });
                return data.ToList();

------解决方案--------------------
也碰到类似的问题,,还没解决。。 友情帮顶吧
------解决方案--------------------
here we go:
var data= from m in sendDetails
          let x=XpoSession.FindObject<CheltemInInfo>(CriteriaOperator.Parse("RFID=?", m.RFID))
          select new 
          {
               CheltemName = x.ChineseName,
     &n