LINQ to SQL странность - PullRequest
       3

LINQ to SQL странность

1 голос
/ 14 июля 2011

У меня есть таблица базы данных с полем, имеющим такие значения, как

AAAA
BBBB0001
BBBB0002
CCCC
CCCC
CCCC

, и я хотел бы знать, сколько существует AAAA, BBBB и CCCC (1, 2 и 3 здесь).

Если я настрою пару тестовых запросов в LinqPad с такими значениями в массиве:

var Table = new [] {"AAAA", "BBBB1", "BBBB2", "CCCC", "CCCC", "CCCC"};

var query1 = Table.GroupBy(d => d).Select( g => new { K = g.Key, C = g.Count()});
query1.Dump();

var query2 = Table.GroupBy(d => d.Substring(0, 4)).Select( g => new { K = g.Key, C = g.Count()});
query2.Dump();

, то получу ожидаемые результаты - в первом случае, сгруппированном по ключу и ввторая сгруппирована по первым четырем символам клавиши

AAAA    1
BBBB1   1
BBBB2   1
CCCC    3

AAAA    1
BBBB    2
CCCC    3

, что нормально.Но если заменить массив таблицей SQLite и выполнить те же запросы, я получу

AAAA    1
BBBB1   1
BBBB2   1
CCCC    3

AAAA    1
BBBB    1
BBBB    1
CCCC    3

То есть, первое правильно, а во втором поле корректно сокращается, но группировкане так.

Кто-нибудь пролил свет на это?

Андрей

1 Ответ

0 голосов
/ 16 июля 2011

Какой разъем вы используете для linq to sqlite? Такое чувство, что это может быть ошибка в этом разъеме.

например. Если посмотреть на таблицу изменений для dotconnect - http://www.devart.com/dotconnect/sqlite/revision_history.html, - то есть много ошибок по группам, которые они нашли и исправили в последние месяцы - и я уверен, что там могут быть и другие.


Если вам абсолютно не нужен sqlite, то вы можете рассмотреть возможность перехода на SQL CE - в этом случае вы получите более прямую поддержку Linq от Microsoft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...