Странный LINQ к поведению SQL

Вот мой набор данных:

1 David
2 David
3 Marc
4 Marc
5 Marc
6 Marc
7 Marc
8 Marc
9 Marc
10 Marc
11 Marc
12 Marc
13 Marc
14 Marc
15 Marc

Этот запрос возвращает 2 (корректные) записи:

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>David</value>%"));

Этот запрос возвращает 2 (корректные) записи:

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>%David%</value>%"));

Этот запрос возвращает 0 (корректных) записей:

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>av</value>%"));

Этот запрос возвращает 2 (корректные) записи:

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>%av%</value>%"));

Этот запрос возвращает 0 (корректных) записей:

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>v</value>%"));

Этот запрос возвращает 15 записей (неправильный, должен возвратиться 2):

    query = query.Where(Log => SqlMethods.Like
(Log.FormattedMessage, "%<key>Name</key><value>%v%</value>%"));

Что не так с последним запросом? Действительно ли это - ошибка, или я пропускаю что-то?

1
задан mcass20 9 June 2010 в 14:21
поделиться

2 ответа

"%<key>Name</key><value>%v%</value>%"

Что идет до/после ключа/значения? Например, я могу представить, что это соответствует этому:

Name Stan< v alue>Kyle

2
ответ дан 2 September 2019 в 23:55
поделиться

Единственная причина, которую я вижу, это то, что у вас %v% в качестве фильтра, что означает в regex (.+)v(.+), в основном любое значение с v где-то в нем. Если это не решение, не могли бы вы опубликовать результаты запросов?

0
ответ дан 2 September 2019 в 23:55
поделиться
Другие вопросы по тегам:

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