Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 使用DbSet进行分页<>;。地方的_Wpf_Entity Framework_Entity Framework 5_Observablecollection_Dbset - Fatal编程技术网

Wpf 使用DbSet进行分页<>;。地方的

Wpf 使用DbSet进行分页<>;。地方的,wpf,entity-framework,entity-framework-5,observablecollection,dbset,Wpf,Entity Framework,Entity Framework 5,Observablecollection,Dbset,我正在尝试在WPF应用程序中分页数据集 我的服务方法如下所示: public ObservableCollection<MyModel> GetPageOfModels(int projectId, int numSkip, int numResults) { this.db.Set<MyModel>() .Where(x => x.Project.Id == projectId) .OrderBy(x => x.Name) .Sk

我正在尝试在WPF应用程序中分页数据集

我的服务方法如下所示:

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;
}
public observateCollection GetPageOfModels(int-projectId、int-numSkip、int-numResults)
{
this.db.Set()
.Where(x=>x.Project.Id==projectId)
.OrderBy(x=>x.Name)
.Skip(numSkip)
.Take(numResults)
.Load();
返回此.db.Set().Local;
}
它第一次被击中时效果很好。但是当我移动到另一个页面时,
Load()
会将下一个页面添加到集合中,而不是替换它


如果我在每次调用
GetPageOfModels
之前重新创建数据上下文,它会工作,但我需要保持相同的数据上下文。有什么方法可以做到这一点吗?

如果必须保留上下文,则可以在进入下一页之前分离所有内容

foreach(var entity in db.Set<MyModel>().Local.ToList())
   db.Entry(entity).State = EntityState.Detached;
foreach(db.Set().Local.ToList()中的var实体)
db.Entry(entity.State=EntityState.Detached;

Hah,我自己刚刚找到了这个,打算把它作为一个答案发布出来!:)