实体框架 – 实体框架 – 基础数据(在数据库中)更改通知
到目前为止,我正在使用实体框架来操纵数据库中的数据.
但是,我想同时播放数据的多个应用程序(并发版). 当数据库中的数据发生变化时,是否有通知方式? 我看到一个使用DML触发器的解决方案,但我想知道是否有其他方法来实现,如果是的话,最好的解决方案是使用. 问候, 尼克 编辑 也许我的问题不够清楚,我会尝试以一个例子来说明. >应用#1正在数据库#1上使用实体框架 解决方法也许你应该考虑在应用程序中使用EF. EF的上下文应尽可能短的时间使用:>创建上下文 由于内部实现(IdentityMap,UnitOfWork)长期的生活环境不是一个不错的选择,而且生活环境短,你根本不想提及行为.即使在桌面应用程序中,您应该使用像每个窗体的上下文方法.您加载数据,您向用户提供数据,直到那时只有用户可以修改数据并按下保存按钮 – 应用程序负责处理并发问题(时间戳).作为运行工作单元的一部分的数据的自动修改是非常糟糕的主意 – 如果用户已经修改过的数据怎么办?你会覆盖他的变化吗 编辑: 您可以阅读有关ObjectContext here的更多内容. 我可以想象需要数据更新通知客户端应用程序的场景.它可以是只读实时数据显示 – 例如股票交易信息.但在这种情况下,您需要更强大的东西.客户端调用ORM不是获取数据的场景,而是客户端订阅处理数据检索和快速更改通知的一些服务/中间层的场景. 对于只需要以半实时方式刷新数据的简单方案,您可以使用轮询 – 您的客户端将在几秒钟内再次调用查询并使用StoreWins策略.任何通知策略都在EF的范围之外 – 您必须将其实现为触发器,sql依赖关系,发布订阅模式或其他内容.即使有通知,您只能处理一些事件并重新查询数据. 再次,如果要通过轮询减少数据传输,您需要一些服务/中间层,这将允许某种程度的缓存(您也可以尝试WCF数据服务). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |