【发布时间】:2011-05-27 05:37:00
【问题描述】:
我有两个使用实体框架的应用程序(Web 和桌面应用程序),它们使用一个通用的 sql server 数据库。他们实现了工作单元模式,并将上下文保存在会话或相关线程中。我的问题是当一个应用程序更新数据库上的某些内容时如何更新另一个应用程序的上下文? 例如,假设 Windows 服务向表中添加了一些行。 Web 应用程序上下文如何在插入的同时获取它。
【问题讨论】:
-
这对我来说听起来是个糟糕的设计。 Web 应用程序应该只在请求持续时才具有上下文,然后应该将其丢弃。我不知道有什么方法可以将上下文与另一个同步。这根本不是 EF 的工作方式。
-
这不是我想要的。我不想同步到上下文,只需要在另一个应用程序在数据库中更新某些内容时更新上下文。
-
我认为这行不通。上下文不可能知道到目前为止发生了什么变化并查询所有这些。您将在更新建议上浪费更多时间来创建新上下文。
-
您所要求的不应完成。数据库不应更新更改的客户端。相反,应该构建客户端以尽可能从数据库中获取数据,并在出现并发异常时处理它们。
标签: sql sql-server entity-framework unit-of-work