【发布时间】: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