Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Как сделать выборку по числу из базы, которое находится в строке

#c_sharp #entity_framework


Например, в базе имеются строки с текстом field=100, field=10, field = 1000, field = 50.

Как мне сделать выборку из кода тех сущностей, в которых field не больше 60?

Пока решаю проблему с помощью string.IndexOf() и забираю строки где число имеет две
цифры, но это костыль.

UPD.
С примерами в комментариях выскакивает ошибка:
Additional information: LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)'
method, and this method cannot be translated into a store expression.

Мне нужно сделать выборку из базы, а не из IEnumerable в памяти.
    


Ответы

Ответ 1



http://ideone.com/ZXOze6 data.Where(s => { var m=Regex.Match(s, @"\d+"); return m.Success && int.Parse(m.Value)<60; })

Ответ 2



public class TestTable { public int Id {get;set;} public string Value {get;set;} } var data = context.TestTable.Where(x=>Convert.ToInt32(x.Value.Split(new char[] {'='}))<60); ну я бы попробовал как то так, исходя из того что Вы написали. а вариант изменения структуры не расматривается вовсе? например поля параметр и значение?

Ответ 3



Можешь воспользоваться регулярными выражениями: Regex regex = new Regex(@"(^|[^\d])[0-5]?[0-9]\s*$"); regex.IsMatch(testedString);

Комментариев нет:

Отправить комментарий