Exemplo n.º 1
0
        private void VisitUpdateClause(Expression expression)
        {
            var assignments = expression as BlockExpression
                              ?? throw new QueryException("Malformed update expression");

            foreach (BinaryExpression assigment in assignments.Expressions)
            {
                var propName  = ((ParameterExpression)assigment.Left).Name;
                var setter    = assigment.Right;
                var setterHql = HqlGeneratorExpressionVisitor.Visit(setter, VisitorParameters).AsExpression();

                _hqlTree.AddSet(_hqlTree.TreeBuilder.Equality(_hqlTree.TreeBuilder.Ident(propName), setterHql));
            }
        }
Exemplo n.º 2
0
        private void VisitUpdateClause(Expression expression)
        {
            var listInit = expression as ListInitExpression
                           ?? throw new QueryException("Malformed update expression");

            foreach (var initializer in listInit.Initializers)
            {
                var member    = (ConstantExpression)initializer.Arguments[0];
                var setter    = initializer.Arguments[1];
                var setterHql = HqlGeneratorExpressionVisitor.Visit(setter, VisitorParameters).AsExpression();

                _hqlTree.AddSet(_hqlTree.TreeBuilder.Equality(_hqlTree.TreeBuilder.Ident((string)member.Value),
                                                              setterHql));
            }
        }