我知道这是一个老问题,但我已经看到了在此之前数据情况,这可能与未来某个人有关。 这可能与您出于某种原因在唯一标识符上聚集您的表(物理组织,带有主键的缺省值)相关。如果您需要批量读取或网页的表格,你可以用阅读SQL查询结束:
SELECT TOP (@batchsize)
*
FROM myTable
WHERE UserId > @previousBatchUserId
也就是说,一般不是一个很理想的设计,正如你所观察到不LINQ-工作到SQL。另外,如果在添加更多行后稍后执行相同的查询,批次中的内容将会更改。如果你有一个CreatedDate(time)列,那么排序会好很多。或者使用创建的日期列作为第一个标准,然后对GUID进行检查(如果可以使用相同的邮票创建多个)。 理想情况下,您应该添加一个代理标识列(以及其上的集群),然后您可以在该标识符所在的位置筛选大于与所需GUID相对应的ID。
它可能然后看起来像:
Guid startUser = //some guid
int startUserId = Common.DataContext.Friends.Single(u => u.FriendID == startUser).Id;
List<Friends> friends = Common.DataContext.Friends.Where(u => u.Id > startUserId);
为什么你甚至试图比较的GUID? – MarcinJuraszek
到目前为止,您正在描述一个问题,但您并未提出问题。这是一个问答网站;如果你提问*,你会得到更好的结果。 * Guid不打算订购*,所以你得到一个错误的事实是*好*。 Guids仅用于身份对比。你试图基于guid命令是一个红旗,表明你可能会滥用guid。退一步,问这是否真的是你想要订购。 –
我的一系列关于正确和错误使用GUID的文章从这里开始:http://blogs.msdn.com/b/ericlippert/archive/2012/04/24/guid-guide-part-one.aspx它可能会帮你。 –