【发布时间】:2015-11-18 23:16:35
【问题描述】:
我正在开发基于 winforms 和 EF 的桌面应用程序。
目前我在 EF 和架构方面遇到了一些问题:
同步数据。有多个表单,每个表单都使用它自己的数据库上下文实例。当在一个表单上更新数据时,我需要在其他表单上手动更新它。有很多不灵活的回调和复制粘贴来刷新数据。
有一些计算在客户端运行并更新大量记录。有时用户需要保存它,而使用 EF 需要很长时间。因此,它也在单独的上下文中运行,因此不会阻止与其他实体的工作
DataGridView 带有绑定实体,
DbSet<T>.Local和DbSet<T>.ToList()存在烦人的问题。保存gridview中的数据时,有时在其他地方没有更新。
我正在寻找可以在那里使用的任何最佳实践和灵活模式。另外,期待听到解决相同问题的人的意见。
谢谢
【问题讨论】:
-
请记住,您应该为每个操作创建一个新的
DbContext实例:不要让它们与 UI 元素一起打开。 EF 是围绕工作单元模式设计的。 -
每个帖子一个问题!并显示您遇到问题的代码。我们无法对诸如“大量非灵活回调”、“有时未更新”等模糊描述做任何事情。
-
@HighCore 我认为 WPF 或 MVVM 并不能真正解决问题中提到的任何问题(不同上下文之间的同步、绑定到本地集、在更新大量记录时阻塞长时间运行的任务等.).
标签: winforms entity-framework design-patterns architectural-patterns