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

asp.net 中linq to sql 的使用
 
var  MatarialQuery = from kcjh in materialdc.KCHJByQYDHs
                        select new 
                          {
                            sl = Convert.ToInt32(kcjh.SL),
                            wl = kcjh.WL,                            
                            company=kcjh.Tag.Contains("<ID")?ma.Tag.Split(',')[0].Replace("<ID:",""):"经营"};
                                   

其中表materialdc.KCHJByQYDHs的Tag有的是空,有的是"<ID:销售,510023>"这种样式的,还有其他样式的,选择的时候我就想处理以“<ID”开头的信息,并将其中的“销售”和,后面的“510023”,选择出来,我想用上面的语句,但是提示出错,出错信息如下:
无法识别的表达式节点: ArrayIndex,
怎么回事,这种情况下不能用kcjh.Tag.Contains("<ID")吗?那我该怎么用?谢谢

------解决方案--------------------
where kcjh.Tag!=null&&Regex.IsMatch(kcjh.Tag.ToString().Trim(),@"^<ID:\w+[,,]\d+>$")
      
------解决方案--------------------
错误信息太少,不好判断吧
------解决方案--------------------
你的表达式里面那个ma是什么啊,没看明白啊
ma.Tag.Split(',')[0].Replace("<ID:","")
------解决方案--------------------
不要在Linq语句中处理,先取出来再判断处理不就行了。