expression-trees

    1熱度

    1回答

    配合拉姆達聲明提供的參數錯誤的數字,我想用System.Linq.Expressions建立一個表達式樹,我得到這個錯誤: Erro: System.ArgumentException: Incorrect number of parameters supplied for lambda declaration at System.Linq.Expressions.Expression.Valid

    4熱度

    1回答

    我有一個gridview,我們可以在其中篩選不同的標準。每個條件都是一個表達式。我有一個場景,我可以有超過一千個標準,導致我的表達式在調用編譯方法時拋出一個StackOverflow。 我仍然是使用Expression btw的初學者。 下面是我重製計算器的示例。 var param = Expression.Parameter(typeof(SomeEntity), "SomeEntity");

    1熱度

    1回答

    問題決策樹如下: 我開發了一個表達式計算引擎,它提供了類似XPath語言給用戶,因此他可以構建表達式。這些表達式然後被解析並存儲爲表達式樹。有很多種表達式,包括邏輯(和/或/不),關係式(=,!=,>,<,> =,< =),算術(+, - ,*,/)和if/then /其他表達式。 除了這些行動,表達可以有常量(數字,字符串,日期等),也可以通過使用類似XPath的語法在Java對象樹導航訪問外部

    4熱度

    2回答

    我已經構建了自己的SQL查詢構建器來分解表達式,但是,我在嘗試獲取在與lambda表達式相同的函數中定義的字符串值時遇到問題。 這裏是我想在控制檯應用程序做: private static void MyBuilderTest() { var sqlBuilder = new SqlBuilder(); // Doesn't work -- NEED GUIDANCE HE

    2熱度

    2回答

    如果我手動構建表達式樹,運行時似乎自動確定返回類型。所以,如果我建立一個表達式樹,看起來像這樣: // Order contains a navigation property for Customer (Order o) => o.Customer; 運行時間是確定的返回類型的客戶,基本上是這樣的: Expression<Func<Order, Customer>> efd = (Orde

    5熱度

    4回答

    爲什麼expr1編譯但不是expr2? Func<object> func =() => new object(); Expression<Func<object>> expr1 =() => new object(); Expression<Func<object>> expr2 = func; //Cannot implicitly convert type 'System.Func<ob

    2熱度

    1回答

    我有這樣的代碼,其生產出乘mynumber的5 ParameterExpression numParam = Expression.Parameter(typeof(int), "num"); ConstantExpression five = Expression.Constant(5, typeof(int)); BinaryExpression numMultiply = Express

    1熱度

    1回答

    我有一個問題,並想知道是否有辦法讓我的蛋糕,吃它。 目前我有一個存儲庫和查詢樣式模式,我如何使用Linq2Sql,但是我有一個問題,我看不到一個很好的方法來解決它。這是問題的一個例子: var someDataMapper = new SomeDataMapper(); var someDataQuery = new GetSomeDataQuery(); var results = Some

    4熱度

    1回答

    我想向block of code in the Effort library添加一些錯誤處理,它會生成一個表達式樹來執行轉換並將該結果指定給屬性。 現有代碼的問題是,當試圖將null賦值給具有值類型的屬性時,在運行時調用此表達式時會引發NullReferenceException。在這種情況下,我沒有關於它試圖分配的屬性的信息,所以我想拋出一個更具體的異常。 以下是我第一次嘗試將此邏輯封裝在try

    1熱度

    1回答

    我有一個存儲庫,其中幾個方法在謂詞中使用相同的邏輯。 public IList<Loan> GetLoansByCommitmentID(int commitmentID) { var query = this.context.Loans.Where(l => l.CommitmentLoan != null && l.CommitmentLoan.Com