首页 > 解决方案 > 将 2 个数据库与 .NetCore 2 同步的最佳解决方案

问题描述

我想每天将多个表中的数据从一个数据库DB1同步到我的 .NetCore 应用程序的数据库DB2

我是 .Net Core 的新手。我对 Java EE 应用程序和 Spring 框架有一定的了解。

第一次尝试 :-)

我的第一个想法是使用 SOAP WebServices 来做到这一点,所以我按照这个例子在我的解决方案中创建了一个 WCF 项目:https ://www.youtube.com/watch?v=plRPBT3h3S8

解决方案的内容(在 Visual Studio 中):

问题 :

第二次尝试:-)

我的第二个想法是使用 WCF Web 服务参考提供程序将Service.svc(在 WCF项目 3中)链接到项目 1,如下所示:https ://docs.microsoft.com/en-us/dotnet/core/additional -tools/wcf-web-service-reference-guide

问题 :

问题

  1. 这些想法之一是否适合同步我的数据库?
  2. 我听说过“服务结构”。它可以是解决它的另一种解决方案吗?
  3. 你知道用 .NET Core 解决它的其他正确方法吗?

谢谢。

标签: visual-studioasp.net-core

解决方案


请查看以下 .NET 项目(开源),该项目允许使用 .NET 和 C# 同步数据库。

.NET Framework 用于使用 C# 同步关系数据库

请访问Dotmin.Sync了解更多信息。

执行同步任务的简单代码:

 // Sql Server provider, the "server" or "hub".
SqlSyncProvider serverProvider = new SqlSyncProvider(
    @"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=true;");

// Sqlite Client provider acting as the "client"
SqliteSyncProvider clientProvider = new SqliteSyncProvider("advworks.db");

// Tables involved in the sync process:
var tables = new string[] {"ProductCategory", "ProductDescription", "ProductModel", "Product", "ProductModelProductDescription",
                           "Address", "Customer", "CustomerAddress", "SalesOrderHeader", "SalesOrderDetail" };

// Sync agent
SyncAgent agent = new SyncAgent(clientProvider, serverProvider, tables);

do
{
    var result = await agent.SynchronizeAsync();
    Console.WriteLine(result);

} while (Console.ReadKey().Key != ConsoleKey.Escape);

问候


推荐阅读