![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
sinitsa |
|
||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Здравствуйте,
мне необходимо найти записи в таблице, где помимо прочих условий есть следующее: каждая строка должна содержать одну из строк из списка NeuStartStateTexts
мой запрос выглядит так:
выдается ошибка: "Local sequence cannot be used in LINQ to SQL implementations of query operators except the Contains operator." Я так понимаю, что это из-за того, что список нельзя в LINQ перебирать. Помогите мне пожалуйста решить эту проблемму. Заранее спасибо |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: нет Всего: 118 |
NeuStartStateTexts.Contains(jt.statetext) используйте
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
sinitsa |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Спасибо за ответ, я так тоже делала:
мне кажется, тут смысл действия другой...тут проверяется содержит ли NeuStartStateTexts текст jt.statetext. Дело в том, что jt.statetext это длинная строка из LOG файла, а NeuStartStateTexts - содержит строки, которые являются ключевыми словами и мне надо, чтоб ключевое слово содержалось в (jt.statetext). Я должна получить количество таких строк, те я делаю
и тут мне выдается ошибка что типы данных текст и текст с оператором "равно" несовместимы...что к чему не понятно |
||||||
|
|||||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: нет Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
sinitsa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Я прочитала, но все равно там нет ответа на мой конкретный вопрос... Мне же надо узнать не содержится в jt.statetext одно из значений моего списка. Может надо сделать Join? |
|||
|
||||
sinitsa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 22.7.2011 Репутация: нет Всего: нет |
Я нашла возможность определить содержит ли список одних строк одну из строк другого списка:
тут listJT содержит полные строки из LOG, а NeuStartStateTexts содержит ключевые слова, которые должны быть найдены в строках listJT но теперь не понятно, почему это не работает с полями таблицы, те то, как я использовала в самом начале темы в вопросе.. В чем разница? Очень надеюсь, что кто-нибудь мне объяснит Заранее спасибо |
|||
|
||||
WarHog |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.10.2007 Где: Воронеж Репутация: 1 Всего: 2 |
Разница в том, что сейчас ты используешь запрос к in-memory коллекции, тогда как в первом случае - запрос к базе. Естественно, что в случае запроса к коллекции ты можешь использовать любые конструкции шарпа.
Вообще, откажись от использования Linq2Sql в данном контексте и заюзай EF - он справится с Contains, вложенным в Any, правда, породив запрос с кучей юнионов. Если отказаться нельзя, в Linq2Sql можно сделать примерно то же самое как-то так:
--------------------
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |