Пытаюсь понять, что не так, но я действительно не могу этого сделать. Итак:
return dc.dictionaries.Select(
d => new AdminDictionaryViewModel
{ dictionary = d,
WordQuantity = dc.interpretations.Where(
i => i.iddictionary == d.iddictionary).Count() });
Это отлично работает, но если я перехожу на:
return dc.dictionaries.Select(
d => new AdminDictionaryViewModel
{ dictionary = d,
WordQuantity = dc.interpretations.Where(
i => i.iddictionary == d.iddictionary)
.Distinct(new WordsInDictionaryDistinct()).Count() });
И мой класс:
public class WordsInDictionaryDistinct : IEqualityComparer<interpretation>
{
public bool Equals(interpretation x, interpretation y)
{
return x.idword.Equals(y.idword) && y.idword.Equals(x.idword);
}
public int GetHashCode(interpretation obj)
{
return obj.idword.GetHashCode();
}
}
У меня есть:
dictionary table
iddictionary | dictionary_name
word table
idword | word_name
interpretation table
idinterpretation | iddictionary | idword
И мне нужно иметь просто отличное idword в каждом словаре, bcz, если я вернусь в моем первом запросе, может быть около 10 слов с idword = 15, но это одно слово, а не 15:
таблица интерпретации
idinterpretation | iddictionary | idword | meaning
1 1 1115 hello
2 1 1115 hi
3 1 1115 hi, bro
4 1 1116
5 1 1118 good bye
6 1 1118 bye-bye
7 2
8 2
После второго запроса я надеюсь, что получу {d = 1, WordQuantity = 3}, но есть
Неподдерживаемая перегрузка, используемая для оператора запроса 'Distinct'.
Я пробовал
.ToList<interpretation>().Distinct(new WordsInDictionaryDistinct()).Count()
но все та же ошибка.
Действительно, не знаю, что делать: (