2011-06-02 47 views
0

我有一個表,如:將字符串轉換爲十進制,使用LINQ比較NHibernate的3.1

Name  Height 
------- --------- 
Sam  "1.80" 
Paul  "1.79" 
Max  "1.81m" 
Steve "none" 

我想只過濾與高度> 1.79的人民。 要做到這一點,我必須轉換爲十進制,然後比較。忽略不是數字的值,例如「無」。 我tryed 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); 

任何解決方案??

韓國社交協會[]

帕特里克·科埃略

+1

爲什麼要將Height存儲爲數據庫中的字符串?將它作爲浮點數存儲應該更方便。那麼你的問題就會消失。 – StuffHappens 2011-06-02 12:19:49

+0

@StuffHappens:這是來自遺留數據庫。 – 2011-06-03 04:53:17

回答

0

,您將能夠對非數值在反對使用NH.Linq一些數據庫進行比較的唯一方法可以是:

  1. 將列轉換爲數字列
  2. 加載所有值並在內存中進行比較(不建議將其用於大數據集中)
+0

該表有50K條記錄。不可能。 – 2011-06-03 04:56:51

相關問題