读书人

几行linq.为什么不能这样写?该如何解决

发布时间: 2012-03-31 13:13:26 作者: rapoo

几行linq.为什么不能这样写?

C# code
          var v = from q in dc.bei                    group q by q.tbid into g                    where g.Count() > 1                    select q;


报错:select q;这里的q 说不存在.
我想找出bei表里.tbid重复的所有行.要怎么写?

我是想删除这些重复的.(只留一个就好).

[解决办法]
var v = from q in dc.bei
group q by q.tbid into g
where g.Count() > 1
select g.Key;

[解决办法]
至于为什么不能这么写 你要看看SQL语法了
和此LINQ对应的SQL语句
[解决办法]
var v = from q in dc.bei
group q by q.tbid into g
where g.Count() > 1
select g.Take(1);




[解决办法]
var v = from q in dc.bei
let id=dc.bei.GroupBy(p=>q.tbid).Where(p=>p.Count() > 1).Select(p=>p.Key)
where id.Contains(q.tbid)
select q;
[解决办法]
试试4L的代码

不行的话用下面的:

var v = (from q in dc.bei
group q by q.tbid into g
where g.Count() > 1
select g).ToList().Select(x => x.Take(1));

读书人网 >.NET

热点推荐