[]帮忙写一个LINQ。多谢~
[求助]帮忙写一个LINQ。。。谢谢~~~~
实现的功能就是从表里读取 第11条 到 第20条 数据
SQL语句是
select top 10 * from student where id not in ( (select top 10 id from student ))
我用 var query =( from student in c.student select new { student .Id }).Skip(10).Take(10) ); 是不行的。不知道是不是因为ID是nvarchar类型的,得到的数据不是数据库里第11条到20条,而是别的数据行。
同样,如果用Take(20).Skip(10)的话,读到的数据也不是正确的。
如何把这个写成LINQ语句啊,谢谢了。
初学LINQ,完全无从下手~~~~~~
------解决方案--------------------
实现的功能就是从表里读取 第11条 到 第20条 数据
SQL语句是
select top 10 * from student where id not in ( (select top 10 id from student ))
我用 var query =( from student in c.student select new { student .Id }).Skip(10).Take(10) ); 是不行的。不知道是不是因为ID是nvarchar类型的,得到的数据不是数据库里第11条到20条,而是别的数据行。
同样,如果用Take(20).Skip(10)的话,读到的数据也不是正确的。
如何把这个写成LINQ语句啊,谢谢了。
初学LINQ,完全无从下手~~~~~~
------解决方案--------------------
- C# code
public void LinqToSqlPaging01() { var q = ( from c in db.Customers orderby c.ContactName select c) .Skip(50) .Take(10); ObjectDumper.Write(q); }
------解决方案--------------------
一个string的ID,你要它按照int来排序,这样当数据多时就是灾难了。
现在还有时间,删除了你的代码,重新设计吧。
------解决方案--------------------
var query=student.Skip(10).Take(10);
------解决方案--------------------
把 ID LeftPad 满位再排序
var query = c.student.OrderBy(s => s.Id.PadLeft(5, '0')).Skip(10).Take(10);
不过,同意sp1234的,应该把表修改下,要么插入时就是满位的。