日期:2014-05-20  浏览次数:20952 次

linq复杂表达式
var cardmanages = from c in dc.cardmanage
  //from r in dc.Review
  //where c.ID == r.card_id
  let a =Convert.ToInt64(c.card_end)-Convert.ToInt64(c.card_start)+1 
  let b = Convert.ToInt64(c.card_end) - Convert.ToInt64(c.card_start) + 1 

  where c.card_name == CardName
  //where c.card_flow == "入库"
  where c.card_type==cardType
  where (Convert.ToDateTime(startDate) <= Convert.ToDateTime(c.card_date)) && (Convert.ToDateTime(endDate) >= Convert.ToDateTime(c.card_date))

  select new Class1
  {
  name = c.card_name,
  Inv = a,
  card_id = c.ID,
  cardtype=c.card_type,
  flow=c.card_flow
  };
  return cardmanages.ToList();

上边A表示的是入库量,B表示的是出库量,我的问题是:现在我想把where c.card_flow="入库"加在A后边,查询出来的是入库,把where c.card_flow="出库"加在B后边,最后的结果是库量A-B,这个怎么实现,大家帮忙给看一下

------解决方案--------------------
楼主,你要先学会把问题抽象出来一个让大家能明白的简单模型,或许等你这样做完后你自己就找到解决思路了。这是解决问题的思路,就算是拿出来问别人也是这样,否则就算有多好心的人耐心把你这个看懂做给你看,你到头来还是什么都不会。