![](/img/trans.png)
[英]LINQ Query comparing Id with an Id in a list inside SingleOrDefault query
[英]Linq query geting list by comparing Id with an list of objects that have ids
我有以下代碼:
var translations = _context.Translations
Where(t => t.LineId == lines.Id)
我有一個名為lines
的變量,它的類型是List<Line>
每個Line
對象都有Line.Id
現在我有另一個名為Translations
的表,我想獲取Line.Id
等於lines
列表中每個Line.Id
的所有 Translations。
如何在單個 LINQ 表達式中完成此操作?
我需要這樣的東西:
var translations = new List<Translation>();
foreach (var line in lines)
{
var translation =
_context.Translations.FirstOrDefault(t => t.LineId == line.Id);
translations.Add(translation);
}
Line.Id
屬性的IEnumerable<T>
,然后在查詢中使用Contains
方法的結果:
var lineIDs = lines.Select(l => l.Id).ToArray();
var translations = _context.Translations
.Where(t => lineIDs.Contains(t.LineId))
.ToList();
由於您只需要那些 ID 存在於lines
中的翻譯,這將為您提供您想要的:
var translations = from translation in _context.Translations
join line in lines on translation.LineID equals line.LineID
select translation;
join
將比為Translations
“表”中的每個項目調用 LINQ 查詢更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.