我知道這是一個老問題,但我已經看到了在此之前數據情況,這可能與未來某個人有關。 這可能與您出於某種原因在唯一標識符上聚集您的表(物理組織,帶有主鍵的缺省值)相關。如果您需要批量讀取或網頁的表格,你可以用閱讀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它可能會幫你。 –