如何...显示数据库中的数据

时间:2016-08-12 15:16:40

标签: c# wpf entity-framework collections lazy-loading

我有一个申请,目前由两部分组成

  1. 使用EF
  2. 从数据库接收数据的查看器
  3. 在运行时从数据库处理数据的服务。
  4. 幕后的逻辑包括一些项目,例如存储库 - 数据访问是通过一个工作单元实现的。 Viewer本身是一个带有底层ViewModel的WPF表单。

    ViewModel包含一个ObservableCollection,它是我的Viewer的数据源。

    现在的问题是 - 我怎么能每隔几分钟检索一次数据库数据?我知道以下两个问题:

    1. 这不是我的存储库“加载”的最新数据 - EF“智能”的东西并从本地缓存中检索数据?如果是这样,我如何强制EF从数据库加载数据?
    2. 重新设置整个ObservableCollection或从另一个线程/后台工作者(使用invokation)添加/删除实体是不可能的。我该如何解决这个问题?
    3. 如果需要,我会添加一些代码,但目前我认为这根本不会有所帮助。

      修改

      Equals

      这段代码不会获取最新数据 - 我手动编辑了一些行(将IsResolved设置为true),但这个方法仍会检索它。

      编辑2:

      Properties after editing data manually in database

      Data in the database

      EDIT3:

      public IEnumerable<Request> GetAllUnResolvedRequests() {
              return AccessContext.Requests.Where(o => !o.IsResolved);
          }
      

      最终问题: 上面的代码“解决”了问题 - 但在我看来,它并不干净。还有另一种方式吗?

0 个答案:

没有答案