語境
我試圖從select new獲得一個串列:
var portfolioresult =
(from port in _context.Portfolio
join u in _context.Universe on port.CUSIP equals u.ID_CUSIP
join m in _context.MarketDataEvent on u.ID_CUSIP equals m.CUSIP_NUMBER_REALTIME
//select new { m, port.Name }).ToList();
select new ViewResult() { MarketDataEvents = m, PortfolioName = port.Name })
.ToList()。
我想獲得MarketDataEvents作為List<MarketDataEvent>/code>
對應的SQL查詢
SELECT me.*, p.Name FROM MarketDataEvent me
INNER JOIN universe u ON u.ID_CUSIP= me.CUSIP_NUMBER_REALTIME
INNER JOIN portfolio p ON p.CUSIp= me.CUSIP_NUMBER_REALTIME
問題是
。我無法在select new中獲得一個List。是否有可能得到這樣的東西?
select new ViewResult() { MarketDataEvents = List< MarketDataEvents>, PortfolioName = port. 名稱 })
預期的結果
List<MarketDataEvents> "XYZ"/span>
List<MarketDataEvents> "ABC"。
實際結果
MarketDataEvent "XYZ
MarketDataEvent "XYZ"
MarketDataEvent "ABC"
uj5u.com熱心網友回復:
基本上你的m參考超出了范圍。一個select陳述句的可用輸入只是你正在查看的select/joins結果中的一個單一值,這就是為什么你沒有看到一個來自m的所有可用串列,只有每個記錄中的一個單一值。
相反,你需要使用SelectMany,因為它將暴露一個IEnumerable作為函式的輸入,你可以從其中分割出單個XYZ值。
uj5u.com熱心網友回復:
是的,這是可能的:
var query =
from port in _context.Portfolio
select new ViewResult
{
MarketDataEvents =
(from u in _context.Universe.Where(u => port.CUSIP == u.ID_CUSIP)
join m in _context.MarketDataEvent on u.ID_CUSIP equals m.CUSIP_NUMBER_REALTIME
select m).ToList()。
投資組合名稱 = port.Name
};
var portfolioresult = query.ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/327153.html
標籤:
