#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);
Комментариев нет:
Отправить комментарий