让我解释一下标题。
我在应用程序(TestApp)中首先使用实体框架代码。出于调试目的,TestApp连接到 SQLExpress 数据库(中央数据库服务器)。
为了简单起见,数据库包含一个表“Products”,TestApp 在数据网格中显示数据库中的所有“Products”,TestApp 可以添加/删除“Product”或修改 ProductName。
public class Product {
public int ProductId { get; set; }
public string ProductName { get; set; }
}
public DbSet<Product> Products { get; set; }
例如,我有 3 台安装并运行 TestApp 的电脑(我将它们称为 Client_X)。如果我通过 Client_1 添加一个新的“产品”,那么这在 Client_2 和 Client_3 上的 TestApp 中是不直接可见的。只有当 Client_2 和 Client_3 再次获取所有数据(手动刷新)时,我才会看到新添加的记录。
我想知道的:如何通过 EF Code First 了解数据库的变化?由于添加或删除了新项目,Client_2 和 Client_3 如何自动更新其数据网格?
我不确定它是否被问得太多,但是一个简单的示例项目或简单的代码来证明这一点会很有用。
仅供参考:我对 EF Code First 还很陌生。(我使用的是 .NET 4.0 和 EF Code First 4.3.1)
提前致谢。
方案:
Client_3<
\
\
\
\
\>
Client_1 <---> [Central Database] <----> Client_2
更新/编辑:
好的,很明显实体框架本身不会在多个客户端之间进行任何同步。
所以我会问另一个问题: 我正在考虑以客户端-服务器方式工作:
- 创建数据库并首先使用实体框架代码的单个服务器应用程序。
与该单个服务器应用程序通信的多个客户端。
现在确保客户端使用相同数据并查看彼此更新/更改的最佳方法是什么?(我会很感激代码示例。)