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

관련 문제