C# 实体框架DbContext如何从数据库(使用绑定)获取更新?

C# 实体框架DbContext如何从数据库(使用绑定)获取更新?,c#,winforms,entity-framework,data-binding,real-time,C#,Winforms,Entity Framework,Data Binding,Real Time,我正在尝试开发一个多用户应用程序,基本上会有一些项目的列表。每个用户正在对此列表执行一些CRUD操作。我需要用户在其他用户进行某些更改时看到列表中的更改 我认为绑定是我所需要的,但根据msdn中的信息,DbContext是一个工作/存储库单元。。。这是否意味着DbContext无法自动从数据库读取更新 有没有一种方法可以使用实体框架获得期望的结果 [编辑] 从数据库获取更新的唯一方法是使用带有附加代码的计时器从数据库重新加载数据吗?这是实时应用程序的唯一选项吗?数据绑定意味着UI和对象之间的绑

我正在尝试开发一个多用户应用程序,基本上会有一些项目的列表。每个用户正在对此列表执行一些CRUD操作。我需要用户在其他用户进行某些更改时看到列表中的更改

我认为绑定是我所需要的,但根据msdn中的信息,DbContext是一个工作/存储库单元。。。这是否意味着DbContext无法自动从数据库读取更新

有没有一种方法可以使用实体框架获得期望的结果

[编辑]
从数据库获取更新的唯一方法是使用带有附加代码的计时器从数据库重新加载数据吗?这是实时应用程序的唯一选项吗?

数据绑定意味着UI和对象之间的绑定,而不是对象到数据库的绑定

您需要调用重载/刷新方法来获取最新的数据库值。 这样地:


(请参阅注释)

数据绑定意味着UI和对象之间的绑定,而不是对象到数据库的绑定

您需要调用重载/刷新方法来获取最新的数据库值。 这样地:


(参见备注)

取决于多用户应用程序的多用户性。“只有少数并发用户可以使用它。@ScottChamberlain假设这是一个呼叫中心应用程序-一些用户注册用户呼叫->工作到列表中,其他用户正在提取这些工作->分配谁将处理这些工作。”。用户A需要知道,用户B已经从未分配工作列表中提取了工作。实现这一目标的最佳选择是什么?使用计时器并在每X秒后刷新数据库中的数据?取决于多用户应用程序的多用户性。“只有少数并发用户可以使用它。@ScottChamberlain假设这是一个呼叫中心应用程序-一些用户注册用户呼叫->工作到列表中,其他用户正在提取这些工作->分配谁将处理这些工作。”。用户A需要知道,用户B已经从未分配工作列表中提取了工作。实现这一目标的最佳选择是什么?使用计时器并在每X秒后刷新数据库中的数据?假设这是一个呼叫中心应用程序-一些用户注册用户呼叫->工作到列表中,其他用户正在提取这些工作->分配谁将处理这些工作。用户A需要知道,用户B已经从未分配工作列表中提取了工作。实现这一目标的最佳选择是什么?使用计时器并在每X秒后刷新数据库中的数据?通常情况下,这种情况是通过推送通知完成的,以在无任何事情发生时最小化计时器开销。我将在另一端使用TCP包和侦听器实现这样的推送通知。这可以通过任何网络协议完成,您只需要一个发送方和一个侦听器。您还可以查看Firebird数据库,它们有一个称为服务器事件的东西。(这是第一个谷歌链接,也许你会发现一些更有用的东西)嗯。。。所以,可能会有一个MS SQL触发器,它存储关于应该刷新什么的信息,客户端应用程序有一个计时器来检查这个小更改信息表,当有关于更改的信息时——然后从数据库重新加载数据?您提到firebirdsql db server,但有没有解决方案可以在MS SQL db server上运行?可以使用MSSQL触发器来完成,但如果什么都不做,并且您每x秒执行一次计时器检查,则开销仍然存在。想象一下你的场景有200个用户,有一个计时器每5秒检查一次是否有新的东西。这将导致每分钟有2400个查询,如果这一分钟没有任何变化,您将有2400个无用的查询,因为没有什么可获取的。我刚才提到firebird,而不是在实际有东西要发送时发送1个TCP数据包,因为它内置了这些事件(它们类似于TCP数据包)。我不知道MSSQL中有这样的功能,但是自己实现并不难,因此,如果您不熟悉开源数据库和prever MSSQL,请坚持使用它并自己动手。假设这是一个呼叫中心应用程序-一些用户注册用户呼叫->工作到列表中,而其他用户正在提取这些工作->分配谁将使用这些工作。用户A需要知道,用户B已经从未分配工作列表中提取了工作。实现这一目标的最佳选择是什么?使用计时器并在每X秒后刷新数据库中的数据?通常情况下,这种情况是通过推送通知完成的,以在无任何事情发生时最小化计时器开销。我将在另一端使用TCP包和侦听器实现这样的推送通知。这可以通过任何网络协议完成,您只需要一个发送方和一个侦听器。您还可以查看Firebird数据库,它们有一个称为服务器事件的东西。(这是第一个谷歌链接,也许你会发现一些更有用的东西)嗯。。。所以,可能会有一个MS SQL触发器,它存储关于应该刷新什么的信息,客户端应用程序有一个计时器来检查这个小更改信息表,当有关于更改的信息时——然后从数据库重新加载数据?您提到firebirdsql db server,但有没有解决方案可以在MS SQL db server上运行?可以使用MSSQL触发器来完成,但如果什么都不做,并且您每x秒执行一次计时器检查,则开销仍然存在。想象一下你的场景有200个用户,有一个计时器每5秒检查一次是否有新的东西。这将导致每分钟有2400个查询,如果这一分钟没有任何变化,您将有2400个无用的查询,因为没有什么可获取的。我刚才提到firebird,而不是在实际有东西要发送时发送1个TCP数据包,因为它内置了这些事件(它们类似于TCP数据包)。我不知道MSSQL中有这样的功能,但是自己实现并不困难,所以如果你不熟悉开源数据库和prev