.Net Core 查询来自 2 个不同数据库的数据

.Net Core query data from 2 different databases

我有一个 .Net Core 项目 运行,我正在使用 2 个不同的数据库(一个 MySQL 数据库和一个 PostGreSQL 数据库)。我设置了它们,它们都在我当前的控制器中实现 - TripController.cs

TripController.cs

public IActionResult Index()
{
    var viewModels = new List<TripViewModel>();
    var Dids = _tripContext.Dids.ToList();
    foreach (var Did in Dids)
    {
        IQueryAble<Tripmetadata> trips = _tripContext.Tripmetadata.Where(t => t.Did == Did.Did);
        var tripsCount = trips.Count()
        //--------------------- I believe error is here ---------------------
        var alias = _context.Devices.Where(d => (long.Parse(d.Did)) == Did.Did).Select(d => d.Alias).ToString();
        // ------------------------------------------------------------------
        var viewModel = new TripViewModel
        {
            TripCount = tripsCount,
            didElement = Did,
            Alias = alias
        };
        viewModels.Add(viewModel)
    }

    return View(viewModels);
}

_context 是 MySQL 数据库,_tripContext 是 PostGreSQL 数据库。

两个数据库都有一个名为 Did 的字段,我需要使用它。对于 PostGreSQL 数据库,我需要使用它来获取给定 Did 的行程量 (tripCount)。但是,对于 MySQL db,我需要使用 Did 来获取设备的 alias

当我尝试使用 TripController 中的上述代码获取 a 的别名时,在我的视图中显示它时,我得到了一个奇怪的值:

Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.String]

如下所示:

我使用一个名为 TripViewModel 的视图模型,并将其传递给我的视图:

TripViewModel.cs

public class TripViewModel
{
    public int TripCount {get;set;}
    public long DidElement {get;set;}
    public string Alias {get;set;}
}

如何让它在我看来写正确的 Alias

我试过很多方法都没有得到我需要的结果。

我设法找到了解决方案。

我的问题是没有在我的 EF 查询末尾添加 .Single()

我还发现这个 post 是重复的。但是我不知道我的问题是什么,直到偶然发现 this: