我想创建一个名为LINQ Expressions的字典,因为我无法将表达式存储在我的数据库中。我将存储所需表达式的名称,以及结构化IList<T>
,其中T
是可以存储在数据库中的参数类型。
但它不是我想要的......我有以下布局。这不是一个真实的表达,我现在只想尝试编译......
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)
}
};
}
然而我被告知......好吧,几乎没有。编译器错误毫无意义。简单说明
这不是变量
如何安全地添加System.Linq.Expressions.Expression
作为Value
IDictionary<string, Expression>
的{{1}}?有什么建议吗?
答案 0 :(得分: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)
}
};