У него есть открытый конструктор без параметров, потому что KeyValuePair<TKey, TValue>
является структурой, а все структуры имеют неявный открытый конструктор без параметров.
Проблема в том, что EF не может найти его по отражению, потому что отражение не возвращает конструктор по умолчанию для структуры.
Вот почему EF сообщает, что не может найти его (не может найти его по отражению).
Кроме того, даже если вы можете использовать конструктор по умолчанию с помощью отражения, KeyValuePair<TKey, TValue>
является неизменным, и поэтому вы не можете установить Key
и Value
после построения.
Чтобы решить вашу проблему, определите пользовательский класс
class NameCount {
public string Name { get; set; }
public int Count { get; set; }
}
и измените свой запрос, чтобы он возвращал Key
как Name
и Value
как Count
. Я предполагаю, что вы можете придумать лучшее имя для своего пользовательского класса.