首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理多个窗体的实体框架上下文

如何管理多个窗体的实体框架上下文
EN

Stack Overflow用户
提问于 2016-01-15 12:40:47
回答 1查看 235关注 0票数 1

在使用多个表单时,我在同步上下文时遇到了困难。想象一下,ProductsCollectionView表单包含一个产品列表(网格),而ProductView表单是您编辑选定产品的地方。

我按照MS指南的建议,通过每个表单上下文来管理EF上下文生命周期。

我在这里发现了类似的问题,但没有一个答案实际上提出了解决方案,而是将OP的设计定义为糟糕,并建议实现UnitOfWork/Repository模式。

首先,我看不出这是如何解决这个特殊问题的。更重要的是,这不是多余的吗,DbContext本身不是UnitOfWork,DbSet不是存储库吗?

可以说,通过实现这些模式并使更改EF更容易使用其他东西或提供测试数据,进一步抽象数据访问层会使您受益。但这不是话题。

回到问题,在这种情况下,我将如何反映对ProductView到ProductCollectionView所做的更改?

我的最佳猜测是实现某种中介,并让DbContexts在进行更改时通知它,并侦听来自其他上下文的更改,然后根据更改对本地数据集进行操作。

我已经坚持了好几天了。我甚至看到我的猫在我休息的时候试图修复这个问题--没有运气。但是,老实说,我认为它不知道如何编码。:)

指向正确的方向是很有帮助的,提供一些代码示例/文章确实非常有帮助:)

谢谢

建立了P.S.模型CodeFirst (逆向工程)。

编辑:,也许我不清楚。我的目标是在ProductView的底层上下文中用户调用ProductsCollectionView ()之后,通过ProductView更新SaveChanges()。不仅限于此场景,还可能会打开另一个表单,其上下文加载了该产品记录,并需要反映对该记录所做的更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-08 11:14:35

到目前为止,某种中介/信使服务是最好的,也是我找到的唯一解决方案。如果有人想出别的办法,我会很高兴知道的。

简而言之:在保存更改/添加实体时,发送消息/通知,并让ViewModel或上下文直接订阅信使,并加载/重新加载添加/更改的实体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34811323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档