Выберите Numeri c Values ​​From String Linq to Entities - PullRequest
0 голосов
/ 06 августа 2020

У меня есть записи, в которых свойство string называется Project. Обычно они имеют такие же значения, как AA-40019-0, но на самом деле они могут быть любыми.

Мне нужно извлечь числовые c значения из свойства проекта Project, чтобы я мог затем попробуйте преобразовать его в ulong, чтобы его можно было отсортировать по.

Я пробую следующий код, чтобы выбрать числовые значения из свойства Project.

return jobs.Select(x => new JobViewModel
{         
     Sequence = x.Project.Where(y => char.IsDigit(y)).ToString()
});

Когда я пытаюсь это сделать, я получаю следующую ошибку:

DbExpressionBinding требует входного выражения с коллекцией ResultType.

Мне нужно использовать Linq to Entities, как я могу ' t позволяет загружать все записи в память.

Я использую SQL Сервер.

1 Ответ

0 голосов
/ 06 августа 2020

Вы не говорите, какую БД вы используете, но я нашел это для SQL сервера. https://www.mytecbits.com/microsoft/sql-server/extract-numbers-from-string#: ~: text =% 20Extract% 20Numbers% 20From% 20String% 20In% 20SQL% 20Server, вы% 20 хотите% 20to% 20split% 20is% 20delimited ...% 20More% 20

Надеюсь, подобная техника может быть использована для используемой вами БД.

Вы можете создать представление со столбцом, вызывающим эту функцию, добавленную в конце, а затем вы сможете отсортировать его.

или чисто в C#, который я не пробовал:

Convert.ToInt32(new string(y.project.Where(c => Char.IsDigit(c)).ToArray())
...