我使用Nhibernate 3.3.3.4001與SybaseSQLAnywhere12Dialect,並嘗試使用總和linq函數中的簡單計算。Nhibernate Linq計算的原因NotSupportedException
我想使用Linq而不是HQL來實現這一點,並很樂意將Nhibernate的默認linq擴展爲hql生成器。
使用下面的Linq查詢引發異常
System.NotSupportedException:表達式類型 'NhSumExpression' 不受此SelectClauseVisitor支持
LINQ查詢
var query = (from c in session.Query<Entity>()
select c.FieldValue/100M).Sum()
預計SQL語句
SELECT SUM(FieldValue/100.0) FROM TableName
如果同一查詢沒有它正確地進行計算,因此感到困惑,爲什麼總和()是行不通的總和()函數來運行。
由於
實測值錯誤,則總和外面劃分上的SQL將優化查詢。 我給出的例子太簡單了,我需要對每行的值計算增值稅。不幸的是,遺留數據庫持有增值稅百分比作爲整數,在每行上執行計算(值*增值稅)之前必須除以100。因此我必須在linq查詢中執行除法。 –