当前位置: 首页 > 编程语言 > C#

EntityFrameworkDataUpdatinginaMulti-UserEnvironmentwithaCentralDatabase分享

时间:2023-04-10 20:51:13 C#

EntityFrameworkDataUpdatinginaMulti-UserEnvironmentwithaCentralDatabase我来解释一下标题。我在我的应用程序(TestApp)中使用EntityFrameworkCodeFirst。出于调试目的,TestApp连接到SQLExpress数据库(中央数据库服务器)。为简单起见,数据库包含一个表“Products”,TestApp在数据网格中显示数据库中的所有“Products”,TestApp可以添加/删除“Products”或修改ProductName。公共类产品{publicintProductId{get;放;}publicstringProductName{get;放;}}publicDbSet产品{get;放;我有3台安装并运行了TestApp的PC(我将其称为Client_X)。如果我通过Client_1添加新的“产品”,它不会直接显示在Client_2和Client_3上的TestApp中。只有当Client_2和Client_3再次获取所有数据(手动刷新)时,他们才会看到新添加的记录。我想知道的是:EFCodeFirst如何知道数据库的变化?Client_2和Client_3如何在添加或删除新项目时自动更新其数据网格?我不确定它是否要求太多,但一个简单的示例项目或简单的代码来证明这一点会很有用。仅供参考:我是EFCodeFirst的新手。(我使用的是.NET4.0和EFCodeFirst4.3.1)提前致谢。场景:Client_3Client_1[中央数据库]Client_2更新/编辑:好的,显然实体框架本身不会在多个客户端之间进行任何同步。所以我会问另一个问题:我正在考虑使用客户端-服务器方式:您不能使用实体框架通知客户端。您可以为SaveChanges编写一个重载,或者创建一个扩展方法,但只要您没有客户端->服务器架构,我无法想象您将如何实现这一点。如果使用WCF作为数据库的网关,则可以在客户端和服务器之间创建双工通信,当有新记录可用时,将使用回调通道通知客户端。另一种方法是使用MSSQLServiceBroker概述(ServiceBroker)仍然有许多不同的方法可以达到预期的结果,但是它们都与实体框架无关,因为它是一个ORM,并且不是用.NET应用程序框架或应用程序的通信框架。这不是EF的责任,更多的是您的一般应用程序设计。一个相对简单的后台或定期轮询过程可以解决你的问题。在处理多个用户时需要考虑更多因素,例如记录锁定,对某些事情进行一些研究可能是一个想法,如果遇到特定问题再回来。以上是C#学习教程:实体框架数据在中央数据库多用户环境下更新共享。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右转联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢