Ошибка LINQtoSQL: операторы Последовательности, не поддерживаемые для типа 'Система. Строка'

Я заметил, что у вас есть опечатка с on_message.

Но я бы также предложил вам использовать модуль pyjokes для этого очень серьезного приложения.

import pyjokes
print(pyjokes.get_joke())
8
задан SpoiledTechie.com 25 November 2008 в 16:12
поделиться

2 ответа

tan.ID.ToString() строка, не набор, таким образом, Вы не можете применить количество ().

Я полагаю, что Вы хотите что-то как: (Этот синтаксис является неправильным, но близко),

from tan in TANS
group tan by tan.ID into dups
where dups.Count() > 1
select dups.Key;

Обновление (после 5 лет минус 5 дней): (Это немного странно к Google проблема, и найдите ответ, который ВЫ записали..) В ядре этой проблемы, оператор LINQ пытается создать SQL-оператор, и база данных не знает, как применить количество () к строке. Однако при использовании LINQ против набора в памяти затем это рассматривало бы строку как IEnumerable, и количество () будет работать просто великолепно.

13
ответ дан 5 December 2019 в 09:26
поделиться

Ответ заторов близко к тому, что я думаю, что Вы желаете, если Вы просто хотите значение самого идентификатора, идут с его. Если Вы хотите объект, идентификатор присвоен для попытки этого.

var dupes = (from tan in TANS
             group tan by tan.ID.ToString() into duplicates
             where duplicates.Count() > 1
             select duplicates.Select(d => d)).SelectMany(d => d);

Не самый чистый способ сделать это в LINQ я уверен. Если я придумаю более чистый способ сделать это, то я отредактирую его здесь. Тот SelectMany важен, поскольку он сглаживает список объектов от IGrouping.

5
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: