Я пытаюсь переписать и интегрировать следующий код в один оператор:
Так что вместо того, чтобы делать это:
var dbList = await _context.ProfileSections.Select(p => new
{
p.Id,
p.Description,
p.InformationText
}).ToListAsync();
var localisedList = dbList.Select(p => new
{
p.Id,
Description = p.Description.Translate(),
Information = p.InformationText.Translate()
}).ToList();
Полагаю, я мог бы использовать, если я строго наберу модель и использую foreach, что-то вроде:
var dbList = await _context.ProfileSections.Select(p => new ProfileSectionModel
{
p.Id,
p.Description,
p.InformationText
}).ToListAsync();
var localisedList = dbList.ForEach(l => {
l.Description = l.Description.Translate();
l.InformationText = l.InformationText.Translate();
}).ToList();
Однако, затем получите сообщение об ошибке: Operator '.' cannot be applied to operand of type 'void'
Так проще ли объединить два утверждения? Или я всегда буду возвращать анонимный тип. Не знаете, как правильно справиться с этим?
EDIT
Может использовать следующее, но затем возникла проблема с динамическими прокси, которые использует EF. Я думаю, поэтому его выбор в анонимный тип?
var dbList = await _context.ProfileSections.ToListAsync();
foreach (var item in dbList)
{
item.Description = item.Description.Translate(),
item.Information = item.InformationText.Translate()
}