我試圖做這樣的事情:如何比較字符串與nhibernate?
Session.Query<VoiceMailNumber>()
.Where(x => (x.From.CompareTo(number) > 0) &&
(x.To.CompareTo(number)) > 0)
但拋出System.NotSupportedException。
從和數字都是字符串。
任何解決方案?
我試圖做這樣的事情:如何比較字符串與nhibernate?
Session.Query<VoiceMailNumber>()
.Where(x => (x.From.CompareTo(number) > 0) &&
(x.To.CompareTo(number)) > 0)
但拋出System.NotSupportedException。
從和數字都是字符串。
任何解決方案?
這解決了它:
Session.CreateCriteria(typeof(VoiceMailNumber))
.Add(Expression.Le("From", number))
.Add(Expression.Ge("To", number))
.UniqueResult<VoiceMailNumber>();
我不是超級本解決方案快樂,但由於無法使用查詢或查詢來比較字符串,因此必須這樣做。
您可以準確地使用此語法比較字符串:
Session.Query<VoiceMailNumber>()
.Where(x => x.From==number)
.And(x=>x.To==number);
翻譯爲:
select * from VoiceMailNumber where From='123456' and To='123456'
是的。但我不想檢查它們是否相同。 – Anders 2011-12-21 09:05:06
你想用什麼SQL函數進行比較? – 2011-12-21 11:32:23
定義「不起作用」,它拋出了傳說中的'DoesntWorkException',它做了什麼? – 2011-12-20 12:43:47
編號System.NotSupportedException – Anders 2011-12-20 12:45:52
恕我直言nhibernate不能「將CompareTo()函數轉換爲sql語句」所以請嘗試'x.From == number' – Reniuz 2011-12-20 12:46:42