相关疑难解决方法(0)

使用DbContext刷新实体实例

使用EF4 CTP5 DbContext,相当于此

    public void Refresh(Document instance)
    {
        _ctx.Refresh(RefreshMode.StoreWins, instance);
    }
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,但它不会做同样的事情,更新实例

    public void Refresh(Document instance)
    {
        _ctx.ChangeTracker.DetectChanges();
    }
Run Code Online (Sandbox Code Playgroud)

entity-framework-4 ef-code-first entity-framework-ctp5

40
推荐指数
2
解决办法
3万
查看次数

实体框架4.1 DbSet重新加载

我正在使用一个DbContext场景实例在WPF应用程序中本地隐藏数据库的整个副本.我听说这是不好的做法,但我的数据库很小,我需要在应用程序运行时在本地完整复制它.

一个扩展方法IQueryable,Load()让我预加载一个元素DbSet<>,这样我就可以将东西绑定到Local属性了DbSet<>.数据库中的数据变化很快,所以我想SaveChanges()重新加载所有内容,甚至是已经跟踪过的对象.Load()再次调用该方法不会更新已加载的已跟踪但未标记为已更改的项目.

重新加载预装物品的首选方法是DbSet<>什么?在我的脑海中,我只能想到调用SaveChanges(),然后遍历所有条目并将跟踪和原始值都设置为数据库中的当前值,然后Load()是可能添加的任何新对象.在我的场景中,不可能删除对象,但从长远来看,我可能不得不支持删除项目.这似乎不对,应该有办法放弃一切并重新加载.看起来更容易删除我的上下文并重新开始,但是WPF中的所有元素都已经绑定了Local´ObservableCollection<>,这只是弄乱了界面.

c# entity-framework-4.1

11
推荐指数
2
解决办法
3万
查看次数