sql >> データベース >  >> RDS >> Oracle

変数から定数を使用してラムダ式を動的に生成します

    ExpressionVisitorを使用すると比較的簡単に実行できます ConstantExpressionを評価します このようなメンバー:

    public static class ExpressionUtils
    {
        public static Expression<TDelegate> ReplaceVariablesWithConstants<TDelegate>(this Expression<TDelegate> source)
        {
            return source.Update(
                new ReplaceVariablesWithConstantsVisitor().Visit(source.Body), 
                source.Parameters);
        }
    
        class ReplaceVariablesWithConstantsVisitor : ExpressionVisitor
        {
            protected override Expression VisitMember(MemberExpression node)
            {
                var expression = Visit(node.Expression);
                if (expression is ConstantExpression)
                {
                    var variable = ((ConstantExpression)expression).Value;
                    var value = node.Member is FieldInfo ?
                        ((FieldInfo)node.Member).GetValue(variable) :
                        ((PropertyInfo)node.Member).GetValue(variable);
                    return Expression.Constant(value, node.Type);
                }
                return node.Update(expression);
            }
        }
    }
    


    1. Dot Net Entity Frameworkデータベースの更新では、mysqlデータベースにテーブルが作成されません

    2. PDOトークンはbindValue1:1と一致する必要がありますか?

    3. Pythonは文字列にEを追加します

    4. 結合された要素へのアクセス