我想每天将来自一个数据库 DB1 的多个表中的数据同步到我的.NetCore应用程序的数据库 DB2 。
我是.Net Core的新手。我对Java EE应用程序和Spring框架有一些技巧。
我的第一个想法是使用SOAP WebServices进行此操作,因此我按照以下示例在我的解决方案中创建了WCF项目:https://www.youtube.com/watch?v=plRPBT3h3S8
我的第二个想法是使用WCF Web服务参考将 Service.svc (在WCF 项目3 中)链接到项目1 。提供者遵循以下示例:https://docs.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide
谢谢。
答案 0 :(得分:1)
我看不出它真正依赖的最佳解决方案。但是有一些选择。
您无需在.net核心中加载任何旧的.net框架代码即可进行数据库同步, 需要从.net核心连接到数据库以加载数据。是的,您可以进行代码重复,但是至少您的解决方案将位于.net核心中,您可以在其中控制整个过程。此外,如果要使用EF,请小心如何加载数据和操作内存。
我要使用的第二个选项是SSDT project。您将编写希望从任何源加载的数据转换过程,我假设它甚至支持文本文件。它还可以连接到不同的数据库提供程序,因此您可以从MySql进行加载并写入SqlServer(在我的项目之一中,我将Postgres完成了mssql)。此解决方案的好处是您可以轻松地进行不同的流错误处理。
最后一个可能是简单的存储过程,如果您在同一服务器上有数据库,则可以创建新用户,该用户将具有对DB1的读访问权限和对DB2的读/写权限,然后使用insert / from或update / from语句。
这里没有灵丹妙药,因此有很多因素,您需要尝试一下自己。
答案 1 :(得分:1)
我认为数据库的设计将对这项工作的难度产生更大的影响。如果很容易识别DB2中没有的Db1中的行,反之亦然,则该代码很简单。我不会打扰多层应用程序-使事情尽可能简单。只需编写一个控制台应用程序。稍后,您可以使用Windows Server上的任务管理器或Linux上的cron计划它。
答案 2 :(得分:0)
在本教程之后,我终于使用API REST解决了这种情况:
并且我已经开发了一个控制台应用程序,该应用程序请求此API(通过HttpClient发送请求)以更新我的应用程序的数据库。
计划任务(CRON)将调用此程序,以每天同步数据库。
答案 3 :(得分:0)
我使用这个库来同步多个数据库。
https://www.nuget.org/packages/SyncData_dotNET/
AppEventsLogger.activateApp(getApplication());