Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为十进制并将Linq与NHibernate 3.1进行比较_Linq_Nhibernate_Type Conversion_Linq To Nhibernate - Fatal编程技术网

将字符串转换为十进制并将Linq与NHibernate 3.1进行比较

将字符串转换为十进制并将Linq与NHibernate 3.1进行比较,linq,nhibernate,type-conversion,linq-to-nhibernate,Linq,Nhibernate,Type Conversion,Linq To Nhibernate,我有一张像这样的桌子: Name Height ------- --------- Sam "1.80" Paul "1.79" Max "1.81m" Steve "none" 我只想过滤身高>1.79的人群。 为此,我必须将其转换为十进制,然后进行比较。忽略值​​不是数字的,例如“无”。 我尝试了Decimal.Parse()和Convert.ToDecimal(),但显示了一个错误System.NotSupportedException peo

我有一张像这样的桌子:

Name     Height
-------  ---------
Sam      "1.80"
Paul     "1.79"
Max      "1.81m"
Steve    "none"
我只想过滤身高>1.79的人群。 为此,我必须将其转换为十进制,然后进行比较。忽略值​​不是数字的,例如“无”。 我尝试了Decimal.Parse()和Convert.ToDecimal(),但显示了一个错误System.NotSupportedException

peoples = peoples.Where(f => Convert.ToDecimal(f.Height) > 1.8);
peoples = peoples.Where(f => decimal.Parse(f.Height) > 1.8);
有什么解决办法吗

Tks[]


Patrick Coelho

将数据库中的非数值与使用NH的数字进行比较的唯一方法是:

  • 将列转换为数字列
  • 向上加载所有值并在内存中进行比较(对于大数据集不建议这样做)

  • 为什么要在数据库中以字符串形式存储高度?以浮点形式存储应该更方便。这样,您遇到的问题就会消失。@StuffOccess:这是一个旧数据库。此表有50K条记录。不可能。