ASP.NET Core Web API - 使用 Sybase 和 SQL Server 实现多个数据库

ASP.NET Core Web API - implement multiple databases using Sybase and SQL Server

几天来,我一直在尝试使用 Sybase 和 SQL 服务器在 ASP.NET Core-6 Web API 中实现多个数据库。我以前从来没有这样做过。

我有这个联系:

  "ConnectionStrings": {
    "MssqlDbConnection": "Server=nikatic;Database=mymssql;Trusted_Connection=True; MultipleActiveResultSets=true;",
    "SybaseDbConnection": "Server=nxppawe;Database=mysybase;Port=6645;Min Pool Size=100;Max Pool Size=1000;User ID=acme;Password=lennon;charset=cp850;"
  },

我有三 (3) 个表:

  1. 员工 ---> 来自 SQL 服务器
  2. 员工项目 --> Sybase
  3. 项目 --> Sybase

我想从两个不同的数据库中查询3个表并显示结果。

using System.Data;
using System.Data.SqlClient;

var sql = @"select e.EmployeeId, e.Name, e.StaffNo, e.Gender, e.DateOfBirth, p.ProjectId, p.Name, p.Duration
            from Employees e
            inner join
            EmployeeProject ep on ep.EmployeeId = e.EmployeeId
            inner join 
            Projects p on p.ProjectId = ep.ProjectId;";

我该如何实现?

谢谢

这里有一个 link 供您创建从 SQL 服务器到 ASE 12

的 linked 服务器

https://www.cdata.com/kb/tech/sybase-odbc-linked-server.rst

关于如何在 SSMS 中创建 linked 服务器的一般文档

https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-ver15

创建后,您将能够从 SQL 服务器访问任何 Sybase 表。请注意远程表的 4 名表示法与本地表的 3 名表示法。

select 
  e.EmployeeId, e.Name, e.StaffNo, e.Gender, e.DateOfBirth, p.ProjectId, p.Name, p.Duration 
from 
  nxppawe.mysybase.acme.Projects p
join nxppawe.mysybase.acme.EmployeeProject ep 
  on p.ProjectId = ep.ProjectId
join mymssql.dbo.Employees e 
  on ep.EmployeeId = e.EmployeeId
;