C#多用户应用程序中的技术,其中所有客户端的数据都是从中央数据库更新的

juF*_*uFo 8 c# database multi-user ef-code-first

在多用户环境中:如何确保所有客户端都能看到每个客户端的更改?做这个的最好方式是什么?

在过去,我创建了一个C#应用程序并将其安装在2台PC上.它连接到中央SQL Express服务器(客户端应用程序使用Entity Framework Code First作为ORM).当client1向数据库添加记录时,这并不直接显示给client2.仅当client2再次获取所有数据(硬刷新)时,才会看到更改.

现在我正在寻找一个关于如何"同步"(?)可以或应该完成的解决方案.我喜欢工作实体框架代码首先,一个解决方案可以保持这个很好.该应用程序仍处于非常早期阶段.我想有一个中央数据库和多个客户端连接到它,但我不确定这是否是一个很好的解决方案.如果您的建议/解决方案需要客户端连接到的中央服务器应用程序(以及服务器应用程序执行数据库处理的位置),这将没有问题.

如果可能的话,基本的示例解决方案或一些显示如何始终使用最新数据的基本代码可能会非常有用!

类似的问题:

提前致谢

Col*_*ith 2

这取决于您的环境、您正在管理的数据以及您想要的架构。

如果让客户端拥有可以使用的数据副本是可以/可接受的,并且他们需要在未连接到中央服务器时使用数据,那么您可以使用同步框架。

您将像往常一样拥有中央 SQL Server,并使用同步框架与客户端同步。

您将编写一个“提供者”来决定如何解决不同客户端对相同数据所做的更改等。

您必须将 SQL Express(或者可能是 LocalDB(SQLCE 的新名称))放到客户端计算机上。

然后执行实体框架模型/代码来访问本地数据库而不是中央数据库。

http://blogs.msdn.com/b/sync/archive/2008/06/24/sample-sql-express-client-synchronization-using-sync-services-for-ado-net.aspx

否则,就需要设计和实现一些“层”并遵循分布式互联网/数据库架构/SOA。

一个很好的免费资源:

http://msdn.microsoft.com/en-us/library/ff650706.aspx

http://mtechsoa2011.blogspot.co.uk/2011/04/soa-vs-distributed-internet_27.html

一些有用的书:

http://www.amazon.co.uk/Service-Oriented-Architecture-Concepts-Technology-Computing/dp/0131858580/ref=sr_1_1?s=books&ie=UTF8&qid=1343295432&sr=1-1