问题描述
UserArray="1,2,4,2,3,4,4";vart1=db.tbdase.Where(o=>UserArray.Contains(o.ID.ToString())).ToList();foreach(vartint1){t.figures=t.figures+3;//加3分}db.SaveChanges();要求给以上ID号加3分,但以上语句仅给相同的ID号如2和4加一次请帮忙怎么能出现一次加一次。谢谢。
解决方案
解决方案二:
这个需要你调试一下,看看t1得到了几条数据
解决方案三:
引用1楼q107770540的回复:
这个需要你调试一下,看看t1得到了几条数据
谢谢,这个已经调试过了,问题是Where(o=>UserArray.Contains(o.ID.ToString()))这句只能取出不同的ID,无法重复,所以只加一次。我想问一下,还有什么办法能重复增加。
解决方案四:
引用1楼q107770540的回复:
这个需要你调试一下,看看t1得到了几条数据
t1=1,2,4,3
解决方案五:
有高手有办法吗
解决方案六:
UserArray="1,2,4,2,3,4,4";foreach(varuserinUserArray){vart1=db.tbdase.Where(o=>o.ID.ToString()==user).FirstOrDefault();t1.figures+=3;db.SaveChanges();}
解决方案七:
UserArray="1,2,4,2,3,4,4";vart1=db.tbdase.Where(o=>UserArray.Distinct().Contains(o.ID.ToString())).Distinct();foreach(vartint1)t.figures=t.figures+3;//加3分db.SaveChanges();
解决方案八:
有没有试过用分组做啊varquery=db.tbdase.GroupBy(a=>a.ID).Select(a=>new{key=a.key,count=a.Count()});
然后匹配key,计算的时候+3*count