我有以下代碼:
var translations = _context.Translations
Where(t => t.LineId == lines.Id)
我有一個名為的變數lines,它是List<Line>每個Line物件都有 的型別Line.Id
現在我有另一個表,名為Translations我想從串列中獲取所有Line.Id等于每個的翻譯。Line.Idlines
如何在單個 LINQ 運算式中完成此操作?
我需要這樣的東西:
var translations = new List<Translation>();
foreach (var line in lines)
{
var translation =
_context.Translations.FirstOrDefault(t => t.LineId == line.Id);
translations.Add(translation);
}
uj5u.com熱心網友回復:
投影IEnumerable<T>您的Line.Id財產,然后使用以下Contains方法在查詢中使用結果:
var lineIDs = lines.Select(l => l.Id).ToArray();
var translations = _context.Translations
.Where(t => lineIDs.Contains(t.LineId))
.ToList();
uj5u.com熱心網友回復:
由于您只需要那些 ID 存在于 中的翻譯,因此lines這將為您提供所需的內容:
var translations = from translation in _context.Translations
join line in lines on translation.LineID equals line.LineID
select translation;
Ajoin將比為Translations“表”中的每個專案呼叫 LINQ 查詢更快。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/498018.html
