我有两个独立的数据库- Database1和database2。Database1在单独的服务器上,databse2在不同的服务器上。我需要插入数据从database1到Datbase2在我的c#编码。这就是我的启动文件看起来像:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AckPackage.Data.AckContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString(DefaultConnection)));
}
这是appsettings中Database1的连接字符串。json文件:
{
"ConnectionStrings": {
"DefaultConnection": "Server=TestServer;TrustServerCertificate=True;Initial Catalog=Database1;uid=test;pwd=test"
}}
我如何在startup.cs文件中定义database2的连接字符串或访问控制器中的database2以便将数据从一个数据库插入到另一个数据库。这就是我的控制器构造函数的样子
private readonly IEmployeeService _employeeService;
public readonly IConfiguration _configuration;
public readonly ILogger _logger;
private readonly IHttpContextAccessor _contextAccessor;
private readonly IWebHostEnvironment _environment;
public EmployeeController(IEmployeeService employeeService,
IConfiguration configuration, ILogger<EmployeeController> logger, IHttpContextAccessor contextAccessor, IWebHostEnvironment environment)
{
_employeeService = employeeService;
_configuration = configuration;
_logger = logger;
_contextAccessor = contextAccessor;
_environment = environment;
}
我只需要从database1 tableA插入数据Database2 tableB。如有任何帮助,不胜感激。
这是一种会产生很多副作用的问题。
首先,您应该知道的是,您不能使用不同的ConnectionString
注册到相同DbContext
的实例。
读一读,找出原因。
所以至少我们需要复制粘贴你的DbContext并重命名它来欺骗ASP.NET DI
系统。
毕竟,您将拥有具有共享模式的多个DbContext。当您有多个DbContext时,请尝试阅读本文以了解迁移和其他内容。
试试。坏消息是,您必须为这两个版本更新两次迁移。
还有另一种方法。避免使用Dependency Injection
:
照这篇文章说的做。这不是一件好事,因为你忽略了DI,你应该在任何你需要的地方手工构建dbcontext。
有一些关于迁移的事情,你应该在Startup.cs
上使用相同的创建过程来处理它们。