這是我的代碼。簡化了可讀性當我在枚舉結果之前得到Count()時,爲什麼會得到「查詢的結果不能多次枚舉」?
var query = from p in people select p;
// here is the point that probably causes the issue
ObjectResult<int> idsThatMatch = getIdsThatMatchFullTextSearch("andre");
query = from p in query where idsThatMatch.Contains(p.id) select p;
var count = query.Count();
query = query.OrderBy(p => p.id);
var pessoas = query.Skip(90).Take(30).ToList();
我需要跳過前閱讀計數/採取尋呼之前得到的記錄總量。計數工作正常。但是在我摘錄的最後一行就觸發查詢的除外
結果不能枚舉不止一次
爲什麼?伯爵不應該列舉任何事情。我該如何解決這個問題?謝謝
編輯
人們認爲我是用存儲過程,但我不是。其實我正在使用「select in」。代碼在評論中低吼。
編輯2
我只是測試上面的代碼沒有 「選擇」 的一部分,它工作正常
EDIT 3
使用該線的工作原理:
ObjectResult<int> idsThatMatch = (getIdsThatMatchFullTextSearch("andre");
query = from p in query where idsThatMatch.Contains(p.id) select p).ToArray();
謝謝
我修改了它(編輯3),以便在我的下一個操作之前將idsThatMatch的結果緩存到數組中。非常感謝你。 (你已經幫了我很多次了) –