我正在嘗試將LinqExpression轉換爲sql語句。例如,在我的Repository基類中,我有一個方法Find,它接受LinqExpression作爲它的參數。在查找方法,我呼籲執行以下操作的方法:LinqExpression:如何從比較評估中獲得價值
var equality = expression as BinaryExpression;
return equality.Left.Translate() + " = " +
equality.Right.Translate();
我怎樣才能在右側的變量的值,而不僅僅是變量名,目前我只得到變量名稱。恩。 Find(x => x.ID = variable);如果變量當前設置爲7我需要一種方法來獲取值7而不是名稱變量。什麼纔是正確的方法來獲得存儲在變量中的值?
除了這種情況,'expression.Right'似乎被捕獲到了閉包變量,而不是一個常量。這意味着它不會是'ConstantExpression'。 – svick
是的,你是對的。我錯過了它是一個變量。所以它應該是_ParameterExpression_。 – mkoertgen