visual-studio - 将 2 个数据库与 .NetCore 2 同步的最佳解决方案
问题描述
我想每天将多个表中的数据从一个数据库DB1同步到我的 .NetCore 应用程序的数据库DB2。
我是 .Net Core 的新手。我对 Java EE 应用程序和 Spring 框架有一定的了解。
第一次尝试 :-)
我的第一个想法是使用 SOAP WebServices 来做到这一点,所以我按照这个例子在我的解决方案中创建了一个 WCF 项目:https ://www.youtube.com/watch?v=plRPBT3h3S8
解决方案的内容(在 Visual Studio 中):
- 项目 1: .NET Core 2.1 中的 Web 应用程序(MVC 架构)
- 项目 2:与.NET Core 2.0 中的Projet 1链接的 Dao 项目
- 项目 3:在 .NET Framework 4.6.1 中使用 ASMX 文件公开 SOAP Web 服务的 WCF 项目
问题 :
- 当我尝试在项目 3的 ASMX 文件中注入项目 1的服务时,与 .NET Framework 4.6.1 和 .NET Core 2.1 不兼容。
- 项目 1和项目 3之间有一个依赖项,以避免在两个项目之间重复代码(例如 dbcontext 的设置,服务),但我没有成功使其工作。
第二次尝试:-)
我的第二个想法是使用 WCF Web 服务参考提供程序将Service.svc(在 WCF项目 3中)链接到项目 1,如下所示:https ://docs.microsoft.com/en-us/dotnet/core/additional -tools/wcf-web-service-reference-guide
问题 :
- 单击“发现”按钮时找不到我的Service.svc,因此无法将其与我的项目 1连接
问题
- 这些想法之一是否适合同步我的数据库?
- 我听说过“服务结构”。它可以是解决它的另一种解决方案吗?
- 你知道用 .NET Core 解决它的其他正确方法吗?
谢谢。
解决方案
请查看以下 .NET 项目(开源),该项目允许使用 .NET 和 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);
问候
推荐阅读
- java - Spring引导控制器映射到反应组件
- c++ - 如何使用 C++ 将测验分数存储在 txt 文件中
- java - 如何在流口水中增加对象字段
- php - PHP方法确定注册的总课程单元是否不超过限制单元
- python - Bin bash:使用给定的 sh 文件参数启动 python 文件
- asp.net - 当前上下文中不存在名称“FormulaIngredents”?
- reactjs - ReactJS 输出控制台日志重复
- visual-studio-code - VSCode Live Share:为两个参与者运行电子应用程序
- sed - 命令错误 - Windows 10 上的 SED (GnuWin)
- mysql - 导入到 mysql 时,服务器将字段从 csv 剪切到字符串的前 50 个字符