也许你应该考虑在你的应用程序EF的使用。EF的情况下应使用的时间最短的时间内尽可能:
- 创建上下文
- 加载数据
- 修改数据
- 保存数据
- 下降上下文
由于内部实现(IdentityMap,UnitOfWork)长期生活环境并不是一个好的选择,并且在短暂的生活环境下,你不希望被提及的行为湖即使在桌面应用程序中,您也应该使用类似上下文的方式。您加载数据,将数据呈现给用户,直到此时只有用户可以修改数据并推送保存按钮 - 应用程序责任以某种方式处理并发问题(时间戳)。自动修改作为工作单元的一部分的数据是非常糟糕的主意 - 如果用户已经修改了数据,该怎么办?你会覆盖他的改变吗?
编辑:
你可以阅读更多关于ObjectContext
here impelementation。
我能想象在需要对客户端应用程序的数据更新通知的情况。它可以是只读的实时数据显示 - 例如股票交易信息。但在这种情况下,你需要更强大的东西。客户端调用ORM获取数据不是情景,而是客户订阅处理数据检索和快速更改通知的某些服务/中间层的情景。
对于只需要以半实时方式刷新数据的简单场景,您可以使用轮询 - 客户端将在几秒钟内再次调用查询,并使用StoreWins策略。任何通知策略都在EF范围之外 - 您必须将其实施为触发器,sql依赖项,发布订阅模式或其他内容。即使有通知,您也只能处理一些事件并重新查询数据。
同样,如果你想降低您所需要的一些服务/中间层,这将允许缓存的某个级别(你也可以尝试WCF数据服务)查询数据传输。
很大的问题!同样的问题/问题:http://stackoverflow.com/questions/11627959/entity-framework-data-updates-in-a-multi-user-environment-with-central-database – juFo 2012-07-24 10:39:35
我也有同样的问题 – 2012-12-31 10:17:45