【问题标题】:Notify UI of changes in entity framework items通知 UI 实体框架项的更改
【发布时间】:2018-05-22 08:22:25
【问题描述】:

我正在开发一个体育应用程序,在该应用程序中,团队以小组形式进行比赛,并且在将团队添加到小组中或从小组中删除时自动生成小组比赛。例如在足球 WC 中。为了存储球队和比赛,我使用数据库和 EF。对于 UI,我使用 WPF 和 MVVM。

现在我正在寻找一种良好的代码设计,当团队被添加到组(或从组中删除)并自动创建(或删除)有关 EF 数据模型中的更改的新匹配时,它会通知 UI。

我目前使用 EF 实体的可观察集合和副本来完成 UI 通知,但这会引发很多关于事务的问题,因为在回滚的情况下,我还需要回滚这些集合中的更改。

更一般地说,我如何让业务层为数据层中的实体在数据层更改提交时向 UI 提供可观察的集合和对象?

关于如何做的任何建议?感谢您的帮助。

【问题讨论】:

  • 你需要依赖EF事件吗?为什么不能只引入一些自定义事件,当团队添加成功时会引发?
  • @AlexRiabov 同意你的看法。我认为这一定是这类事情的最佳实践。传统的 .Net 事件将完成这项工作。至少它是一个业务逻辑,那么为什么要将它委托给 EF,这肯定是你的数据层?
  • 所以您的意思是业务层只是简单地引发了数据已更改的事件。反过来,UI 视图模型将其数据与数据层同步。这似乎比我的方法更容易。但这也意味着数据层需要缓存数据以避免额外的数据库往返。我会尝试一下。谢谢。

标签: c# wpf entity-framework mvvm


【解决方案1】:

我会根据 Alex Riabov 的评论回答自己。业务层只是引发数据已更改的事件。反过来,UI 视图模型将其数据与数据层同步。但这也意味着数据层需要缓存数据以避免额外的数据库往返。

【讨论】:

  • 嗯。我仍然想知道,如果业务层通知 UI 确切发生了哪些变化,而不是仅仅引发一个表明发生了变化的事件并将其留给 UI 来确定发生了什么变化,这会不会好得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
相关资源
最近更新 更多