2017-05-30 72 views
0

我有一個.Net核心項目正在運行,我正在使用2個不同的數據庫(一個MySQL數據庫和一個PostGreSQL數據庫)。我讓他們建立了,他們在我的電流控制器既實現 - TripController.cs.Net來自2個不同數據庫的核心查詢數據

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 db,我需要使用它來獲得給定的Did的行程量(tripCount)。但是對於MySQL數據庫,我需要使用Did來獲取設備的alias

當我嘗試使用來自TripController上面的代碼來獲得別名在我看來顯示它時,我纔拿到奇怪的值:

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

如下所示:enter image description here

我使用了一個名爲TripViewModel視圖模型,我通過我的看法:

TripViewModel.cs

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

在我看來,我如何得到正確的Alias

我已經嘗試了許多方法,不會產生我需要的結果。

回答

0

我設法找到解決方案。

我的問題是我的EF查詢結束時沒有添加.Single()

我還發現這篇文章是重複的。然而,我不知道我的問題是什麼,直到癱瘓this