2011-07-19 2 views
0

データベースに式を格納できないため、LINQ Expressionsという名前の辞書を作成します。私は必要な式の名前を格納し、構造化されたIList<T>Tであり、データベースに格納できるパラメーターの型です。IDictionary <string、Expression>を作成するのが難しいと判断しました

しかし、それは私が欲しいとは思っていません...私は次のレイアウトを持っています。私は、よく...ほとんど何も言われませんされていますしかしこれは..私はちょうど今のコンパイルに何かを取得しようとしている、

public static class Evaluations { 
     public static Dictionary<string, Expression> Expressions = new Dictionary<string, Expression> { 
      { 
       "First Expression", 
       new Expression<Func<int, int, int>> = 
        (current, next) => (current + next) 
      } 
     }; 
    } 

本当の表現ではありません。コンパイラエラーは意味をなさない。単に

を述べこれは私が安全に私のIDictionary<string, Expression>ValueとしてSystem.Linq.Expressions.Expressionを追加することができますどのように変数

ではないでしょうか?助言がありますか?

+0

は、あなたが表現を必要と確信していますか?あなたLinq.Expressionのものが必要ない場合は、ちょうどFunc を使用することができます – Guillaume86

答えて

4

これは有効な式ではありません:あなたはに値を割り当てるために何をしようとしている

new Expression<Func<int, int, int>> = 
       (current, next) => (current + next) 

私はあなたが意味を考える:

(Expression<Func<int, int, int>>)((current, next) => current + next) 

これは罰金コンパイル:

public static Dictionary<string, Expression> Expressions = 
    new Dictionary<string, Expression> { 
    { 
     "First Expression", 
      (Expression<Func<int, int, int>>)((current, next) => current + next) 
    } 
}; 
+0

はい、それは私のために働いていない表現部分のボクシングでした。ありがとう。 – Ciel

+0

@シエル:ボクシングは進行中ではなく、まだではありません...それはあなたに問題を引き起こしていた構文でした。 –