让我来解释一下标题。
我在一个应用程序(TestApp)使用实体框架代码优先。 为了调试目的TestApp连接到数据库的SQLExpress(中央数据库服务器)。
为了简单起见这里,该数据库包含一个表的“产品”和TestApp显示在数据网格数据库中的所有“产品”和TestApp可以添加/删除“产品”或修改的产品名称。
public class Product {
public int ProductId { get; set; }
public string ProductName { get; set; }
}
public DbSet<Product> Products { get; set; }
我有3例PC的地方TestApp安装并运行(我会打电话给他们Client_X)。 如果我通过Client_1上添加一个新的“产品”,比这是不是在TestApp上的Client_2和Client_3直接可见。 只有当Client_2与和Client_3再次获取所有数据(手动刷新),比我看到新添加的记录。
我想知道的:我怎样才能知道通过EF代码第一次在数据库中的变化呢? Client_2与和Client_3将如何得到他们的数据网格自动更新,因为一个新的项目添加或移除?
我不知道这是否是问太多,但一个简单的示例项目或简单的代码来证明这将是有益的。
FYI:我是相当新的EF代码优先。 (我使用.NET 4.0和EF代码第一次4.3.1)
提前致谢。
方案:
Client_3<
\
\
\
\
\>
Client_1 <---> [Central Database] <----> Client_2
更新/编辑:
好吧,很显然的是,实体框架本身并不做多客户端之间的任何同步。
所以我会问另一个问题:我想工作的客户机-服务器方式:
- 单台服务器的应用程序,创建数据库,并第一次使用实体框架代码。
多个客户端与单个服务器应用程序进行通信。
现在会是什么,以确保客户端使用相同的数据,看看eachothers更新/改变的最佳途径? (我希望代码示例。)