0

我正嘗試在WPF應用程序中對數據集進行分頁。使用DbSet <>進行尋呼本地

我的服務的方法是這樣的:

public ObservableCollection<MyModel> GetPageOfModels(int projectId, int numSkip, int numResults) 
{ 
    this.db.Set<MyModel>() 
    .Where(x => x.Project.Id == projectId) 
    .OrderBy(x => x.Name) 
    .Skip(numSkip) 
    .Take(numResults) 
    .Load(); 

    return this.db.Set<MyModel>().Local; 
} 

這個偉大的工程第一次被擊中。但是當我移動到不同的頁面時,Load()添加到集合的下一頁,而不是替換它。

如果我在每次調用GetPageOfModels之前重新創建數據上下文,它會起作用,但我需要保持相同的數據上下文。有什麼辦法可以做到這一點?

回答

1

如果您必須保留上下文,那麼在獲取下一頁之前,您可以分離所有內容。

foreach(var entity in db.Set<MyModel>().Local.ToList()) 
    db.Entry(entity).State = EntityState.Detached; 
+0

哈,我剛剛發現了這個問題,並打算髮布它作爲答案! :) – Cocowalla

相關問題