Перейти к типу бега services.msc
. Проверьте, запущены ли службы MySQL
или нет. Если нет, запустите его вручную.
Я думаю, это вызов Select в сочетании с ToList () может быть тем, что вам здесь нужно. Например:
context.Items
.Select(item => new DestinationType(item.A, item.B, item.C))
.ToList();
Предполагая, что это LINQ to Objects, попробуйте ...
var newSet = set.Aggregate(new List<DestinationType>(),
(list, item) =>
{
list.Add(new DestinationType(item.A, item.B, item.C));
return list;
});
Здесь вы можете просто применить select
.
var newSet = set.Select(item => new DestinationType(...)).ToList();
Совокупный
(обычно известный как свертка
или уменьшение
) используется для объединения элементов вместе, где select
применяет функцию к каждому элементу.
Пример:
Пусть f
будет унарной функцией, тогда
[a, b, c].
select
(f)
равно [f (a), f (b), f (c)]
.
] Пусть f
будет двоичной функцией, тогда [a, b, c].
aggregate
(f, init)
равен f (a, f (b, f (c, init)))
.
Способ, который вы выбрали в своем примере, необычен в C #, но часто используется в функциональном программировании, где (связанные) списки преобразуются в новые списки вместо изменения существующих collection:
reversed = fold (\list element -> element:list) [] [1..10]
Если вы действительно хотите выполнить это вычисление с агрегатом
, используйте решение Дастина или лучше реализуйте тип на основе связанного списка для неизменяемых коллекций (вы даже можете дать этому типу оператор +
).
list.AddRange(context.Items.Select(item =>
new DestinationType(item.A, item.B, item.C));
Я понимаю, что здесь не используется функция агрегирования, но вам, вероятно, следует найти лучший пример для изучения агрегата.