Member 14054644 Ответов: 1

Выражение не может содержать лямбда-выражений


var selpartNumber1 = from a in db.TEMPORARY_QUESTs
из б в дБ.вопросы
из c в db.QUEST_SCATTERINGs
где.QUESTIONNAIRE_NO == prm_quest_no и усилитель; &
а.VERSION_NO == prm_version_no и усилитель; &
а.MIKZOA_BHINA == prm_mikzoa_bhina и усилитель; &
а.PATTERN_NUMBER == prm_pattern_number и усилитель; &
a.GENERTED_DATE == ttaarich_last_use &&
a.GENERTED_TIME == (десятичное число)ttime_use &&
а.SERIAL_QESTION == б.SERIAL_QESTION и усилитель; &
б.MIKZOA_BHINA == ц.MIKZOA_BHINA и усилитель; &
б.CHAPTER_CODE == ц.CHAPTER_CODE и усилитель; &
b.SUBJECT_CODE == c.SUBJECT_CODE &&
а.QUESTIONNAIRE_NO == ц.QUESTIONNAIRE_NO и усилитель; &
а.VERSION_NO == ц.VERSION_NO и усилитель; &
а.MIKZOA_BHINA == ц.MIKZOA_BHINA и усилитель; &
а.PATTERN_NUMBER == ц.PATTERN_NUMBER и усилитель; &
c.PART_NUMBER == 1
заказатьпо гр.PART_NUMBER ,
b.QUESTION_KIND восходящий,
b.HISTOTY_DRAFTING по возрастанию,
a.SEQ_4_QUESTION по возрастанию
выберите новый
{
a.SEQ_4_QUESTION,
a.SERIAL_QESTION,
b.HISTOTY_DRAFTING,
b.QUESTION_KIND
};

Random rand = новый случайный();
var shuffledList = selpartNumber1.OrderBy(x => rand.Next(1, selpartNumber1.Считать())).Список();

Что я уже пробовал:

совет ?????????????????????????????????????????????????????????????????

Vincent Maverick Durano

Какая строка вызывает ошибку? Что ты пытаешься сделать?

1 Ответов

Рейтинг:
8

Richard Deeming

rand.Next(1, selpartNumber1.Count()) не может быть преобразован в SQL-запрос.

Поскольку вы загружаете весь набор результатов в память, вам нужно выполнить сортировку в памяти, а не в SQL.

Вы также должны избегать подсчета результатов запроса для генерации случайного числа - особенно если вы делаете это в цикле! Заказать по Guid.NewGuid() вместо.

var shuffledList = selpartNumber1.AsEnumerable().OrderBy(x => Guid.NewGuid()).ToList();

NB: С помощью Guid.NewGuid() должен также работает, если вы сортируете в SQL; но была ошибка с запросами, содержащими соединения, которые вызывали дублирование данных:
c# - Linq to Entities, random order - переполнение стека[^]


Member 14054644

спасибо вам, куда более полезные